কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ২-ডি অ্যারে রিশেপ (Reshape) করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ২-ডি সংখ্যার অ্যারে, 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]]

  1. জাভাস্ক্রিপ্টে অ্যারে খালি কীভাবে করবেন?

  2. জাভাস্ক্রিপ্টে অ্যারে খালি করার উপায়

  3. জাভাস্ক্রিপ্ট Array.prototype.map() ফাংশন

  4. জাভাস্ক্রিপ্ট বেসিক অ্যারে মেথড: push, pop, shift, unshift, splice