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

怎么理解[].concat(...arr),单独...arr报错

怎么理解[].concat(...arr),单独...arr报错

翻翻过去那场雪 2018-09-24 20:39:28
背景:多维数组展开问题: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]]


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

添加回答

举报

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