हमें एक फ़ंक्शन लिखना होगा, मान लीजिए chunk() जो पहली आर्गुमेंट के रूप में string / number literals की एक सरणी arr और दूसरी आर्गुमेंट के रूप में एक संख्या n लेता है।
हमें n उपसरणियों की एक सरणी लौटानी आवश्यक है, जिनमें से प्रत्येक में अधिकतम होता है:
arr.length / n तत्व।
तत्वों का वितरण इस तरह होना चाहिए:
पहला तत्व पहली उपसरणी में जाता है, दूसरा दूसरी में, तीसरा तीसरे में और इसी तरह। एक बार जब प्रत्येक उपसरणी में एक तत्व हो जाता है, तो हम फिर से पहली उपसरणी को उसके दूसरे तत्व से भरना शुरू करते हैं। इसी तरह, जब सभी उपसरणियों में दो तत्व हो जाते हैं, तभी हम पहली सरणी में तीसरा तत्व भरते हैं और इसी तरह।
उदाहरण के लिए: यदि इनपुट सरणी है:
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
और संख्या n 3 है,
तब आउटपुट होना चाहिए:
const output = [ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ];
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं। हम मूल सरणी पर Array.prototype.reduce() विधि का उपयोग करके वांछित सरणी का निर्माण करेंगे।
उदाहरण
इसका कोड निम्नलिखित होगा:
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
const divideArray = (arr, size) => {
return arr.reduce((acc, val, ind) => {
const subIndex = ind % size;
if(!Array.isArray(acc[subIndex])){
acc[subIndex] = [val];
}else{
acc[subIndex].push(val);
};
return acc;
}, []);
};
console.log(divideArray(input, 3));
आउटपुट
कंसोल में आउटपुट होगा:
[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ]