语法:
array.reduce(function(pre, cur, index, arr), init)
- pre (上一次调用回调返回的值,或者是提供的初始值(initialValue))
- cur (数组中当前被处理的元素)
- index (当前元素在数组中的索引)
- arr (调用的数组)
- init (传递给函数的初始值)
reduce()累加
带初始值
var arr = [1, 3, 2, 4, 8, 5]
let sum = arr.reduce((pre, item) => {
return pre + item
}, 10)
console.log(sum)
带初始值结果如下:
不带初始值结果如下:
reduce()数组去重
var arr = [1, 2, 2, 4, 8, 4]
var newArr= arr.reduce((pre, item) => {
// 判断当前数组中是否包含相同的数据,includes返回的是布尔值
// 目前初始值是空数组
if(!(pre.includes(item))){
pre.push(item)
}
return pre //是数组
},[])
console.log(newArr)
结果如下:
reduce()求最大值
var arr = [1, 2, 2, 4, 8, 4]
var max= arr.reduce((pre, item) => {
return Math.max(pre,item)
})
console.log(max)
结果如下: