为了账号安全,请及时绑定邮箱和手机立即绑定

复杂数组的展开

复杂数组的展开

小怪兽爱吃肉 2018-11-07 13:15:04
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)

        }, []);

}


查看完整回答
反对 回复 2018-12-02
  • 1 回答
  • 0 关注
  • 524 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信