展平阵列
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]
上述两种方法仅在数组由数字组成时才起作用。此方法无法展平多维对象数组。