var a = [1,2,[3,4]] var result = []; for(var i=0; i< a.length; i++){ if(a[i].constructor == Array) { for(var j=0; j<a[i].length; j++){ result.push(a[i][j]) } }else { result.push(a[i]) } } console.log(result)// [1,2,3,4]
var a = [1,2,[3,4]] var result = [] for(var i=0; i<a.length; i++){ if(a[i].constructor == Array) { result = result.concat(a[i]) }else { result.push(a[i]) } } console.log(result) // [1,2,3,4]
扩展运算符相当于数组拆成最小单位了,...[1,,2,,[3, 4]] 相当于变成了 1,2, [3, 4]; 这样 [].concat(...a) 就相当于 [].concat(1,2,[3,4])
var a = [1,2,[3,4]]
var result = []
result = [].concat(...a)
console.log(result) // [1,2,3,4]
这个跟扩展运算符类似,apply 会把数组a 拆分,拆成 1,2,[3, 4] 依次传递给concat方法, 效果就跟 扩展运算符一样了。
var a = [1,2,[3,4]]
var result = []
result = Array.prototype.concat.apply([], a)
console.log(result) // [1,2,3,4]
原文:https://www.cnblogs.com/yalong/p/10615194.html