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

Làm phẳng một mảng với các giá trị true / falsy mà không cần sử dụng các hàm thư viện - JavaScript

Chúng tôi được yêu cầu viết một hàm mảng JavaScript nhận vào 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ỳ phần tử lồng 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 đó, đầu ra phải là -

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

Ví dụ

Sau đây là mã -

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

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

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