-
reduce 不改变原数组
-
语法
arr.reduce(callback,[initialValue])
-
参数
// 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组
let array = [1, 2, 3, 4, 5];
let aum = array.reduce((sum, cur) => sum + cur, 0)
console.log(aum,array,'array')//15,[1,2,3,4,5]
// 0 表示累加初始值 0+1+2+3+4+5
- 累加
let array = [1, 2, 3, 4, 5];
let aum = array.reduce((sum, cur) => sum + cur, 0)
console.log(aum,array,'array')//15,[1,2,3,4,5]
// 0 表示累加初始值 0+1+2+3+4+5
- 多维数组拍平
let array = [8, 9, [2, 3], 4, 5];
const flatten = arr => arr.reduce(
(acc,val) => acc.concat(Array.isArray(val)? flatten(val):val),[]
)
flatten(array)