求助,这段代码什么意思

const flatten = arr => arr.reduce(

  function (a, b){

    a.concat(Array.isArray(b) ? flatten(b) : b),[]

  }

);

定义了一个flatten函数,使用的是es6的箭头函数,传进去一个数组,对这个数据进行reduce方法,后边的那个,[]是什么意思没明白

慕后森
浏览 497回答 1
1回答

千万里不及你

arr.reduce(callback, [initialValue])reduce方法接受两个参数:第一个参数是一个function,每次执行都回调用这个参数第二个参数是初始值,就是那个[]。也就是说第一次调用function的时候,a是[]文档在这里你的代码的问题:刚执行了一次,发现少了点东西,应该是这样子:const flatten = arr => arr.reduce(  function (a, b){    return a.concat(Array.isArray(b) ? flatten(b) : b)   }, [] );
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript