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

জাভাস্ক্রিপ্টে স্নেইল ট্রেইল সমস্যা: ম্যাট্রিক্স স্পাইরাল ট্র্যাভার্সাল

ধরুন আমাদের নিচের মত একটি অ্যারে আছে:

const arr = [ 
  [1, 2, 3, 4], 
  [12,13,14,5], 
  [11,16,15,6], 
  [10,9, 8, 7] 
];

এই অ্যারে একটি স্কোয়ার ম্যাট্রিক্স।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই অ্যারে নেয় এবং একটি নতুন অ্যারে তৈরি করে বাইরের পাশ থেকে কেন্দ্রের দিকে স্পাইরাল আকারে উপাদানগুলো নিয়ে।

উপরের অ্যারের জন্য আউটপুট হবে:

const output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];

আমরা এই সমস্যাটি রিকার্সন ব্যবহার করে সমাধান করব।

উদাহরণ

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

const arr = [ 
  [1, 2, 3, 4], 
  [12,13,14,5], 
  [11,16,15,6], 
  [10,9, 8, 7] 
]; 
const spiralForm = arr => { 
  return arr.length > 1 ? 
  arr.splice(0,1)[0] 
  .concat(spiralForm(arr[0].map((c, i) => { 
    return arr.map(r => r[i]); 
  }) 
  .reverse())) : 
  arr[0] 
} 
console.log(spiralForm(arr));

আউটপুট

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

[ 
  1, 2, 3, 4, 5, 6, 
  7, 8, 9, 10, 11, 12, 
  13, 14, 15, 16 
]
  1. জাভাস্ক্রিপ্টে অ্যারে খালি কীভাবে করবেন?

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

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

  4. জাভাস্ক্রিপ্টে কলা বিতরণ সমস্যা (Distributing Bananas)