কম্পিউটার

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


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা n নেয়। আমাদের ফাংশনটি N * N ক্রম (2-D অ্যারে) এর একটি অ্যারে তৈরি করে ফেরত দেয়, যেখানে 1s [0, 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. JavaScript Array.isArray()

  2. JavaScript array.flatMap()

  3. জাভাস্ক্রিপ্ট অ্যারে স্লাইস()

  4. নতুন কীওয়ার্ড দিয়ে একটি জাভাস্ক্রিপ্ট অ্যারে তৈরি করা হচ্ছে।