ধরা যাক, আমাদের এমন একটি ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে স্ট্রিং/সংখ্যা লিটারালের অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা n নেয়।
আমাদের n সাব্যারেগুলির একটি অ্যারে ফেরত দিতে হবে, যার প্রতিটিতে সর্বাধিক arr.length / n উপাদান রয়েছে। এবং উপাদানগুলির বন্টন এইরকম হওয়া উচিত -
- প্রথম উপাদানটি প্রথম সাব্যারেতে যায়, দ্বিতীয়টিতে দ্বিতীয়টি, তৃতীয়টিতে তৃতীয়টি ইত্যাদি।
- একবার আমাদের প্রতিটি সাবয়ারেতে একটি উপাদান থাকলে, আমরা আবার তার দ্বিতীয় উপাদান দিয়ে প্রথম সাবয়ারে পূরণ করা শুরু করি।
- একইভাবে, যখন সমস্ত সাব্যারেতে দুটি উপাদান থাকে তখনই আমরা প্রথম অ্যারেতে তৃতীয় উপাদানটি পূরণ করি ইত্যাদি।
যেমন −
যদি ইনপুট অ্যারে −
হয়const ইনপুট =[656, 756, 5345, 67, 43, 76, 54, 768, 34];
এবং n সংখ্যাটি 3, তাহলে আউটপুট −
হওয়া উচিতকনস্ট আউটপুট =[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ]];
আমরা কাঙ্ক্ষিত অ্যারে তৈরি করতে মূল অ্যারের উপর Array.prototype.reduce() পদ্ধতি ব্যবহার করব।
উদাহরণ
নিম্নলিখিত কোড -
const ইনপুট =[656, 756, 5345, 67, 43, 76, 54, 768, 34];const divideArray =(arr, size) => { return arr.reduce((acc, val, ind) => { const subIndex =ind % সাইজ; 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 ] ]