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

背景:
多维数组展开
问题:

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]}

第一种写法有什么问题吗?为什么结果不理想
第二种方法应该怎么断句


翻翻过去那场雪
浏览 1308回答 1
1回答

千万里不及你

你这第一个写法 没啥用啊 拿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]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript