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

জাভাস্ক্রিপ্টে রিকার্সন ছাড়া মাল্টিপল নেস্টেড অ্যারে ফ্ল্যাটেন করা

মান লিয়ে, আমাদের একটি নেস্টেড সংখ্যার অ্যারে আছে -

const arr = [1, 4, 5, [ 
  5, 6, [ 
    6, 19, 5, [5] 
  ], [5, 7, 6, [6, 8]], 8 
], 6];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি নেস্টেড অ্যারে গ্রহণ করবে, আদর্শভাবে যেকোনো أربিটারি লেভেলে নেস্টেড। আমাদের ফাংশনটি একটি নতুন অ্যারে তৈরি করবে যা ইনপুট অ্যারেটির ফ্ল্যাটেনড ভার্সন।

  • हम अपने कोड में कहीं भी किसी कस्टम रिकर्सिव फ़ंक्शन का उपयोग नहीं कर सकते।
  • हम अपने कोड में Array.prototype.flat() मेथड का उपयोग नहीं कर सकते।

উদাহরণ

const arr = [1, 4, 5, [ 
  5, 6, [ 
    6, 19, 5, [5] 
  ], [5, 7, 6, [6, 8]], 8 
], 6]; 
const flattenWithoutRecursion = (arr = []) => { 
  const res = []; 
  let level = 0, ref = [arr], counter = [0]; 
  while(level >= 0){ 
    if (counter[level] >= ref[level].length) { 
      level--; 
      continue; 
    }; 
    if (Array.isArray(ref[level][counter[level]])) { 
      ref[level + 1] = ref[level][counter[level]]; 
      counter[level]++; 
      level++; 
      counter[level] = 0; 
      continue; 
    }; 
    res.push(ref[level][counter[level]]); 
    counter[level]++; 
  }; 
  return res; 
}; 
console.log(flattenWithoutRecursion(arr));

আউটপুট

কনসোলে আউটপুট হবে -

[ 
  1, 4, 5, 5, 6, 6, 
  19, 5, 5, 5, 7, 6, 
  6, 8, 8, 6 
]
  1. জাভাস্ক্রিপ্ট array.includes() ফাংশন

  2. জাভাস্ক্রিপ্ট array.toLocaleString() ফাংশন

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

  4. জাভাস্ক্রিপ্ট Array some() ফাংশন