展平陣列

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]

上述兩種方法僅在陣列由數字組成時才起作用。此方法無法展平多維物件陣列。