हमें एक फंक्शन चंक () लिखना होता है, जो पहले तर्क के रूप में स्ट्रिंग / संख्या शाब्दिकों की एक सरणी गिरफ्तारी लेता है और दूसरे तर्क के रूप में एक संख्या n लेता है।
हमें n उप-सरणी की एक सरणी वापस करने की आवश्यकता है, जिनमें से प्रत्येक में अधिकतम arr.length / nelements शामिल हैं। और तत्वों का वितरण इस प्रकार होना चाहिए -
पहला तत्व पहले सबरे में जाता है, दूसरा दूसरे में, तीसरा तीसरे में और इसी तरह। एक बार जब हमारे पास प्रत्येक उपसरणी में एक तत्व होता है, तो हम फिर से पहले उपसरणी को उसके दूसरे तत्व से भरना शुरू करते हैं। इसी तरह, जब सभी सबअरे में दो एलिमेंट होते हैं, उसके बाद ही हम तीसरे एलिमेंट को पहले ऐरे में भरते हैं और इसी तरह।
उदाहरण के लिए -
// if the input array is: const input = [1, 2, 3, 4, 5, 6]; //then the output should be: 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 ] ]