Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm phẳng một mảng ký tự lồng nhau sâu sắc trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng các ký tự lồng nhau làm đối số duy nhất. Hàm phải tạo một mảng mới chứa tất cả các phần tử chữ có trong mảng đầu vào nhưng không có lồng.

Ví dụ -

Nếu mảng đầu vào là -

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

Sau đó, mảng đầu ra phải là -

const output = [1, 3, 5, 6, 7, 6, 5, 4, 3, 4];

Ví dụ

Sau đây là mã -

const arr = [
   1, 3, [5, 6, [7, [6, 5], 4], 3], [4]
];
const flattenArray = (arr = []) => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      if(Array.isArray(el)){
         res.push(...flattenArray(el));
      }else{
         res.push(el);
      };
   };
   return res;
};
console.log(flattenArray(arr));

Đầu ra

Sau đây là kết quả trên bảng điều khiển -

[
   1, 3, 5, 6, 7,
   6, 5, 4, 3, 4
]