हमें एक फ़ंक्शन chunk() लिखना है जो स्ट्रिंग/संख्या लिटरल की एक सरणी arr को पहले तर्क के रूप में और एक संख्या n को दूसरे तर्क के रूप में लेता है।
हमें n उप-सरणियों की एक सरणी लौटानी है, जिनमें से प्रत्येक में अधिकतम arr.length / n तत्व हों। और तत्वों का वितरण इस तरह होना चाहिए:
पहला तत्व पहली उप-सरणी में जाता है, दूसरा दूसरी में, तीसरा तीसरी में, और इसी तरह। एक बार जब प्रत्येक उप-सरणी में एक तत्व हो जाता है, तो हम फिर से पहली उप-सरणी को उसके दूसरे तत्व से भरना शुरू करते हैं। इसी तरह, जब सभी उप-सरणियों में दो तत्व हो जाते हैं, तभी हम पहले सरणी में तीसरा तत्व भरते हैं, और इसी तरह।
उदाहरण के लिए:
// यदि इनपुट सरणी है: const input = [1, 2, 3, 4, 5, 6]; // तो आउटपुट होना चाहिए: const output = [ [1, 4], [2, 5], [3, 6] ];
आइए इस फ़ंक्शन के लिए कोड लिखते हैं, हम मूल सरणी पर Array.prototype.reduce() मेथड का उपयोग करके वांछित सरणी का निर्माण करेंगे:
उदाहरण
const input = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const chunk = (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(chunk(input, 4));
आउटपुट
कंसोल में आउटपुट होगा:
[ [ 1, 5, 9 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ]