ধরা যাক, আমাদের একটি ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে স্ট্রিং/নাম্বার লিটারেল সম্বলিত একটি অ্যারে arr এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা 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 ] ]