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

জাভাস্ক্রিপ্টে নির্দিষ্ট আকারের বাইনারি স্পাইরাল অ্যারে তৈরি করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা n নেবে। ফাংশনটি N * N অর্ডারের একটি ২-ডি অ্যারে তৈরি করবে যেখানে ১গুলো স্পাইরাল পজিশনগুলো নেবে (শুরু করবে [0,0] থেকে) এবং ০গুলো নন-স্পাইরাল পজিশনগুলো নেবে।

অতএব, n = 5 হলে আউটপুট হবে:

[
  [ 1, 1, 1, 1, 1 ],
  [ 0, 0, 0, 0, 1 ],
  [ 1, 1, 1, 0, 1 ],
  [ 1, 0, 0, 0, 1 ],
  [ 1, 1, 1, 1, 1 ]
]

উদাহরণ

নিচে কোডটি দেওয়া হলো:

const num = 5;
const spiralize = (num = 1) => {
  const arr = [];
  let x, y;
  for (x = 0; x < num; x++) {
    arr[x] = Array.from({
      length: num,
    }).fill(0);
  }
  let left = 0;
  let right = num;
  let top = 0;
  let bottom = num;
  x = left;
  y = top;
  let h = Math.floor(num / 2);
  while (left < right && top < bottom) {
    while (y < right) {
      arr[x][y] = 1;
      y++;
    }
    y--;
    x++;
    top += 2;
    if (top >= bottom) break;
    while (x < bottom) {
      arr[x][y] = 1;
      x++;
    }
    x--;
    y--;
    right -= 2;
    if (left >= right) break;
    while (y >= left) {
      arr[x][y] = 1;
      y--;
    }
    y++;
    x--;
    bottom -= 2;
    if (top >= bottom) break;
    while (x >= top) {
      arr[x][y] = 1;
      x--;
    }
    x++;
    y++;
    left += 2;
  }
  if (num % 2 == 0) arr[h][h] = 1;
  return arr;
};
console.log(spiralize(num));

আউটপুট

কনসোল আউটপুট:

[
  [ 1, 1, 1, 1, 1 ],
  [ 0, 0, 0, 0, 1 ],
  [ 1, 1, 1, 0, 1 ],
  [ 1, 0, 0, 0, 1 ],
  [ 1, 1, 1, 1, 1 ]
]

  1. জাভাস্ক্রিপ্ট Array.isArray() মেথড

  2. জাভাস্ক্রিপ্ট array.flatMap() মেথড

  3. জাভাস্ক্রিপ্ট Array.slice() মেথড

  4. জাভাস্ক্রিপ্টে new কীওয়ার্ড দিয়ে অ্যারে তৈরির পদ্ধতি