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

Làm phẳng mảng bằng cách sử dụng vòng lặp và đệ quy trong JavaScript

Chúng tôi được yêu cầu viết một hàm mảng JavaScript có trong một mảng lồng nhau với các giá trị sai và trả về một mảng có tất cả các phần tử có trong mảng mà không có bất kỳ dấu hiệu nào.

Ví dụ:Nếu đầu vào là -

const arr = [[1, 2, 3], [4, 5, [5, false, 6, [5, 8, null]]], [6]];

Sau đó, kết quả đầu ra phải là -

const output = [1, 2, 3, 4, 5, false, 6, 5, 8, null, 6];

Do đó, hãy viết mã cho chức năng này -

Ví dụ

Mã cho điều này sẽ là -

const arr = [[1, 2, 3], [4, 5, [5, false, 6, [5, 8, null]]], [6]];
const flatten = function(){
   let res = [];
   for(let i = 0; i < this.length; i++){
      if(Array.isArray(this[i])){
         res.push(...this[i].flatten());
      }else{
         res.push(this[i]);
      };
   };
   return res;
};
Array.prototype.flatten = flatten;
console.log(arr.flatten());

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   1, 2, 3, 4,
   5, 5, false, 6,
   5, 8, null, 6
]