var a = [1,2,[{a:2},3,4,[5,6,{b:2}]]];将这样一个数组展开成为一个一维的数组,要求是不能创建新的数组,在原数组本身修改for (var i=0;i<a.length;i++){ if(Array.isArray(a[i])){ a.splice(i,1)[0].map(function (item,index) { a.splice(i+index,0,item); }) }}写了一个实现,但是我记得之前并不是这么解决的,但是想不起来了,求一个更好的方案
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
function flat(arr) {
return arr.reduce(
function(acc, val) {
return acc.concat(Array.isArray(val)? flat(val): val)
}, []);
}
添加回答
举报
0/150
提交
取消