हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहली तर्क के रूप में संख्याओं की एक सरणी और दूसरी तर्क के रूप में एक अकेली संख्या, मान लीजिए num, लेता है। num हमेशा सरणी की लंबाई से कम या बराबर होगा।
फ़ंक्शन को एक नई सरणी तैयार करनी चाहिए जिसमें num संख्या में उपसरणियां हों। सभी उपसरणियों में तत्वों की समान संख्या होनी चाहिए यदि सरणी की लंबाई num से बिल्कुल विभाज्य है अन्यथा केवल अंतिम उपसरणी में अलग संख्या में तत्व होने चाहिए।
उदाहरण के लिए -
यदि इनपुट सरणी और संख्या हैं -
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const num = 3;
इसलिए, उपरोक्त इनपुट के लिए आउटपुट इस तरह दिखना चाहिए -
const output = [ [1, 2, 3], [4, 5, 6], [7, 8] ];
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 2, 3, 4, 5, 6, 7, 8];
const num = 3;
const chunkArray = (arr = [], num = 1) => {
const { length: l } = arr;
const elPerArr = Math.ceil(l / num);
const res = arr.reduce((acc, val, ind) => {
const curr = Math.floor(ind / elPerArr);
if (!acc[curr]) {
acc[curr] = [val];
} else {
acc[curr].push(val);
}
return acc;
}, []);
return res;
};
console.log(chunkArray(arr, num));आउटपुट
कंसोल में आउटपुट होगा -
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ]