关于一道数组的面试题~求解答

题目是用一个函数拍平一个多层嵌套的数组,数组内只包含基本类型。
这是我的解法:http://js.jirengu.com/hurir/1...

https://img2.mukewang.com/5b66fcdf0001450a04430275.jpg

https://img.mukewang.com/5b66fcdf0001c6a704480307.jpg


报错如上图,为什么会这样呀,v1不是一个数组吗 ??
这是要得到的结果:[2, 3, 'ss', 8, 8, 4,9, 2]
求解答

德玛西亚99
浏览 987回答 2
2回答

慕仙森

var flattendeep = arr => arr.reduce( (a,x)=> a.concat(Array.isArray(x)?flattendeep(x):x),[]) flattendeep([1,2,3,4,[5,6,[7,'ab']]]) =>[1,2,3,4,5,6,7,'ab']这是lodash里面的‘高级’函数。

哔哔one

  function fallten(arr) {    return arr.reduce(function (v1, v2) {      if (Array.isArray(v2)) {        return v1 = v1.concat(fallten(v2))      } else {        v1.push(v2)        return v1      }    }, [])  }
打开App,查看更多内容
随时随地看视频慕课网APP