मान लीजिए, हमें एक ऐसा फ़ंक्शन लिखना है जो पहले तर्क के रूप में स्ट्रिंग / संख्या अक्षर की सरणी गिरफ्तारी और दूसरे तर्क के रूप में संख्या 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 ] ]