背景:多维数组展开问题:var arr = [1,2,[3,4,[5,6,[7,8],9],10]];function fn(arr){ return [].concat(arr.map(d=> Array.isArray(d)?fn(d):d))//(3) [1, 2, Array(4)]// return [].concat(...arr.map(a=> Array.isArray(a)? fn(a):a))//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}第一种写法有什么问题吗?为什么结果不理想第二种方法应该怎么断句
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
你这第一个写法 没啥用啊
拿arr = [1,[3]]
简化
[].concat([1,[3]].map(d=> Array.isArray(d)? [].concat([3].map(a=>a)):d))//[3].map(d=>d) 返回原数组 没啥用 [].concat([3]) == [3]//所以[1,[3]].map(d=> d)[].concat([1,[3]].map(d=> d)) [].concat([1,[3]]) [1,[3]]
添加回答
举报
0/150
提交
取消