Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Làm phẳng mảng dùng vòng lặp và đệ quy trong JavaScript

Làm phẳng mảng dùng vòng lặp và đệ quy trong JavaScript

Chúng ta cần viết một hàm mảng JavaScript nhận vào một mảng lồng nhau có chứa giá trị false và trả về một mảng với tất cả các phần tử có trong mảng mà không có bất kỳ 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]];

Thì kết quả đầu ra nên là:

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

Do đó, hãy viết mã cho hàm này:

Ví dụ

Mã thực hiện như sau:

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

Kết quả trong console sẽ là:

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