展平阵列

2 维数组

Version >= 6

在 ES6 中,我们可以通过扩展运算符 ... 展平数组 :

function flattenES6(arr) {
  return [].concat(...arr);
}

var arrL1 = [1, 2, [3, 4]];
console.log(flattenES6(arrL1)); // [1, 2, 3, 4]

Version >= 五

在 ES5 中,我们可以通过 .apply() 来实现

function flatten(arr) {
  return [].concat.apply([], arr);
}

var arrL1 = [1, 2, [3, 4]];
console.log(flatten(arrL1)); // [1, 2, 3, 4]

更高维度的阵列

给定一个深度嵌套的数组

var deeplyNested = [4,[5,6,[7,8],9]];

它可以用这种魔法来平坦化

console.log(String(deeplyNested).split(',').map(Number);
#=> [4,5,6,7,8,9]

要么

const flatten = deeplyNested.toString().split(',').map(Number)
console.log(flatten);
#=> [4,5,6,7,8,9]

上述两种方法仅在数组由数字组成时才起作用。此方法无法展平多维对象数组。