আমাদের একটি ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি এক-মাত্রিক অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি নম্বর n গ্রহণ করবে এবং আমাদের প্যারেন্ট অ্যারেতে n সংখ্যক সাব-অ্যারে তৈরি করতে হবে (যদি সম্ভব হয়) এবং এলিমেন্টগুলো সেসব অনুযায়ী ভাগ করতে হবে।
** যদি অ্যারেতে ৯টি এলিমেন্ট থাকে এবং আমরা ৪টি সাব-অ্যারে তৈরি করতে বলি, তবে প্রতিটিতে ২টি করে ভাগ করলে ৫টি সাব-অ্যারে তৈরি হবে এবং ৩টি করে ভাগ করলে ৩টি, এমন ক্ষেত্রে আমাদের নিয়ারেস্ট লোয়েস্ট লেভেলে ফলব্যাক করতে হবে (এখানে ৩) কারণ আমাদের শর্ত হলো প্রতিটি সাব-অ্যারেতে সমান সংখ্যক এলিমেন্ট বান্টন করা, শেষ সাব-অ্যারেটি কিছু 스페শাল কেসে ব্যতীত।
উদাহরণস্বরূপ:
// যদি ইনপুট অ্যারে হয়: const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; // এবং নম্বরটি ২ //তবে আউটপুট হবে: const output = [ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ];
এই ফাংশনের কোড লিখি:
উদাহরণ
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; const splitArray = (arr, rows) => { const itemsPerRow = Math.ceil(arr.length / rows); return arr.reduce((acc, val, ind) => { const currentRow = Math.floor(ind / itemsPerRow); if(!acc[currentRow]){ acc[currentRow] = [val]; }else{ acc[currentRow].push(val); }; return acc; }, []); }; console.log(splitArray(arr, 2));আউটপুট
কনসোলে আউটপুট হবে:
[ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ]