JS数组操作方法大全

一、flat

  flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回,flat() 方法会移除数组中的空项。

  var newArray = arr.flat([depth])

  depth 可选指定要提取嵌套数组的结构深度,默认值为 1。

  //使用 Infinity,可展开任意深度的嵌套数组

  var arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];

  arr4.flat(Infinity);

  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  手动实现flat:

// 第一种
ary = str.replace(/([]))/g,
'').split(',');
// 第二种
str = str.replace(/([]))/g, '');
 str = '[' + str + ']';
 ary = JSON.parse(str);
 // 第三种
 let result = [];
 let fn = function(ary) {
  for(let i = 0; i < ary.length; i++) }{
    let item = ary[i];
    if (Array.isArray(ary[i])){
      fn(item);
    } else {
      result.push(item);
    }
  }
 }

 二、filter

filter()函数用于过滤序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

数组的filter方法只要return true,就会返回当前项,重新组成一个新的数组,不会修改原数组
Talk is cheap,show me the code
原文地址:https://www.cnblogs.com/qc-one/p/14865742.html