हमें एक फ़ंक्शन लिखने की आवश्यकता है, मान लें कि खंड () जो पहले तर्क के रूप में स्ट्रिंग / संख्या शाब्दिक की एक सरणी गिरफ्तारी लेता है और दूसरे तर्क के रूप में एक संख्या n लेता है।
हमें n उप-सरणी की एक सरणी वापस करने की आवश्यकता है, जिनमें से प्रत्येक में अधिकतम -
. शामिल हैंarr.length / n elements.
तत्वों का वितरण इस तरह होना चाहिए -
पहला तत्व पहले सबरे में जाता है, दूसरा दूसरे में, तीसरा तीसरे में और इसी तरह। एक बार जब हमारे पास प्रत्येक उप-सरणी में एक तत्व होता है, तो हम फिर से पहले उप-सरणी को उसके दूसरे तत्व से भरना शुरू करते हैं। इसी तरह, जब सभी सबअरे में दो एलिमेंट होते हैं, उसके बाद ही हम तीसरे एलिमेंट को पहले ऐरे में भरते हैं और इसी तरह।
उदाहरण के लिए:यदि इनपुट सरणी है -
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 ] ]