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