没错,就是下面这行代码,就是这么简单粗暴
let reduceFrom = arr => arr.reduce((prev, val) => prev.concat(Array.isArray(val) ? reduceFrom(val) : val),[])
我们分析下这行代码,分析完再多讲一个for循环的方法,买一送一,不亏。
这里用到5个知识点
1:reduce() 迭代数组
2:concat() 连接多个数组
3:Array.jsArray() 判断是否是数组
4:三元表达式
5:递归
当然,如果你认为 => 函数也算的话,那也可以算一个。
这行代码我们创建函数 reduceFrom ,函数内传参 arr,再用 arr.reduce() 方法对传进来的数组进行迭代,
我们看到 arr.reduce((prev,val)) 这个迭代方法有两个参数 prev 和 val 。prev 参数是上一个位置,val 是当前位置(这里的位置是指数组中的位置&