&用法
对于数组,将数组元素依次处理,最终汇总为单个值(可以是数字、字符串、对象、数组等)
&语法
array.reduce(callback(accumulator, currentValue, index, array), initialValue)
参数说明:
callback:回调函数,处理每个元素的函数。
accumulator:累加器,存储中间结果。(理解:上一个值preValue)
currentValue:当前处理的元素。
index(可选):当前元素的索引。
array(可选):原数组。
initialValue(可选):初始值,作为第一次调用callback时accumulator的值。若省略,默认使用数组第一个元素作为初始值。
&使用场景
#1.数组元素求和 | 求平均值,阶乘...同理
const arr = [1,2,3,4,5]
const sum = arr.reduce((pre, cur)=>{
return pre + cur
},0)
console.log(sum) //15
#2.数组元素去重 | 实现类似trim()效果同理
const arr = [1,2,3,4,5,1,2,3,4,5]
const trim= arr.reduce((pre, cur) => {
return !pre.includes(cur) && pre.push(cur)
},[])
console.log(trim) // [1,2,3,4,5]
#3.(比较)求数组元素最大值 | 最小值
const arr = [1,2,3,4,5]
const max= arr.reduce((pre, cur) => {
return pre > cur ? pre : cur
},[])
console.log(max) // 5
#4.数组扁平化
const arr = [ [1,2], [3,4], [5,6] ] //二维数组
const res= arr.reduce((pre, cur) => {
return [...pre, ...cur]
})
console.log(res) //[1, 2, 3, 4, 5, 6]
738

被折叠的 条评论
为什么被折叠?



