JS数组降维简单记录

462 阅读1分钟

二维数组降维

var arr = [['a', 'b' ,'c'], ['d', 'e'], ['f']];

1.双重循环

var newArr1 = [];
for (var i = 0; i < arr.length; i++) {
  for (var j = 0; j < arr[i].length; j++) {
    newArr1.push(arr[i][j]);
  }
}

2.单次循环+concat方法

var newArr2 = [];
for( var i = 0; i < arr.length; i++) {
  newArr2 = newArr2.concat(arr[i]);
}

3.apply +concat方法

var newArr3 = [];
newArr3 = Array.prototype.concat.apply(newArr3, arr);

多维数组降维-递归方法

var arr2 = [[1, 2],[3,[4,[5, 6]]]];
var recursive = function (arr, newArr) {
  arr.forEach((val, index) => {
    if ( Array.isArray(val)) {
      recursive(val, newArr);
    } else {
      newArr.push(val);
    }
  })
  return newArr;
}
var newArr4 = [];
recursive(arr2, newArr4);