আমাদের একটি chunk() ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি স্ট্রিং/নম্বর লিটারেলের অ্যারে arr এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি নম্বর n গ্রহণ করবে।
আমাদের n সংখ্যক সাব-অ্যারে ধারণকারী একটি অ্যারে রিটার্ন করতে হবে, যেকোনো সাব-অ্যারেতে hoog 최고 arr.length / n এলিমেন্ট থাকবে। এবং এলিমেন্ট ডিস্ট্রিবিউশন হবে এমনভাবে:
প্রথম এলিমেন্ট প্রথম সাব-অ্যারেতে যাবে, দ্বিতীয় দ্বিতীয় সাব-অ্যারেতে, তৃতীয় তৃতীয় সাব-অ্যারেতে, ইত্যাদি। একবার প্রতিটি সাব-অ্যারেতে একটা এলিমেন্ট হলে, আমরা আবার প্রথম সাব-অ্যারেতে এর দ্বিতীয় এলিমেন্ট দিয়ে ফিল আপ করব। একইভাবে, যখন সব সাব-অ্যারেতে দুটি এলিমেন্ট হয়ে যাবে, তারপর থर्ड এলিমেন্ট প্রথম অ্যারেতে ফিল করব, ইত্যাদি।
উদাহরণস্বরূপ:
// যদি ইনপুট অ্যারে হয়: const input = [1, 2, 3, 4, 5, 6]; //তবে আউটপুট হবে: 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 ] ]