সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ২-ডি সংখ্যার অ্যারে, arr, প্রথম আর্গুমেন্ট হিসেবে এবং দুটি সংখ্যা, r এবং c, যেগুলো কাঙ্ক্ষিত ম্যাট্রিক্সের সারি (row) এবং কলাম (column) সংখ্যা প্রতিনিধিত্ব করে, নেয়।
ফাংশনটি নির্দিষ্ট সারি ও কলাম সহ একটি নতুন ২-ডি অ্যারে গঠন করবে এবং ফেরত দেবে, ইনপুট অ্যারেতে থাকা সারি-ট্রাভার্সিং (row-traversing) অর্ডার রক্ষা করে।
উদাহরণস্বরূপ, ইনপুট যদি হয়:
const arr = [ [6, 7], [8, 9] ]; const r = 1, c = 4;
তবে আউটপুট হবে:
const output = [[6, 7, 8, 9]];
আউটপুট ব্যাখ্যা
arr-এর সারি-ট্রাভার্সিং হল [6, 7, 8, 9]। নতুন রিশেপ করা ম্যাট্রিক্স হল ১ * ৪ ম্যাট্রিক্স, এটিকে সারি تلو সারি পূর্বের লিস্ট ব্যবহার করে ভরা হয়েছে।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [
[6, 7],
[8, 9]
];
const r = 1, c = 4;
const reshapeArray = (arr, r, c) => {
if (r * c !== arr.length * arr[0].length) {
return arr
}
const res = []
let row = []
arr.forEach(items => items.forEach((num) => {
row.push(num)
if (row.length === c) {
res.push(row)
row = []
}
}))
return res
};
console.log(reshapeArray(arr, r, c));
আউটপুট
[[6, 7, 8, 9]]