展平陣列
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]
上述兩種方法僅在陣列由數字組成時才起作用。此方法無法展平多維物件陣列。