Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การรวมอาร์เรย์ที่ซ้อนกันเพื่อสร้างอาร์เรย์ 1 มิติใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ที่ซ้อนกันสองอาร์เรย์ arr1 และ arr2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง

ฟังก์ชันของเราควรสร้างและส่งคืนอาร์เรย์ที่สามที่มีองค์ประกอบทั้งหมดของ arr1 andarr2 แต่ถูกทำให้แบนเป็นมิติเดียว

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr1 = [
   1, [
      2, [
         4, 5, [
            6
         ]
      ]
   ]
];
const arr2 = [
   11, 12, [
      16, 18, [
         19, 21, [
            23
         ]
      ]
   ]
];

จากนั้นผลลัพธ์ควรเป็น −

const output = [1, 2, 4, 5, 6, 11, 12, 16, 18, 19, 21, 23];

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr1 = [
   1, [
      2, [
         4, 5, [
            6
         ]
      ]
   ]
];
const arr2 = [
   11, 12, [
      16, 18, [
         19, 21, [
            23
         ]
      ]
   ]
];
const flattenAndMerge = (arr1 = [], arr2 = []) => {
   const res = [];

   const flatten = (arr = []) => {
      for(let i = 0; i < arr.length; i++){
         if(Array.isArray(arr[i])){

            flatten(arr[i]);
         }else if(typeof arr[i] === 'number'){
            res.push(arr[i])
         };
      };
   };
   flatten(arr1);
   flatten(arr2);
   return res;
};
console.log(flattenAndMerge(arr1, arr2));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

[
   1, 2, 4, 5, 6,
   11, 12, 16, 18, 19,
   21, 23
]