কম্পিউটার

জাভাস্ক্রিপ্টে পুনরাবৃত্তি ছাড়াই একাধিক নেস্টেড অ্যারে সমতল করার ফাংশন


ধরুন, আমাদের কাছে এইরকম সংখ্যার একটি নেস্টেড অ্যারে আছে −

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. JavaScript array.includes() ফাংশন

  2. JavaScript array.toLocaleString() ফাংশন

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

  4. জাভাস্ক্রিপ্টে কিছু() ফাংশন অ্যারে করুন