js高阶函数reduce() 常见案例

基本概念

reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

语法

arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数)
previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
currentValue (数组中当前被处理的元素)
index (当前元素在数组中的索引)
array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)

案例

1.简单的计算求和

let num = [1,5,8,10],
     initialValue =10,
    callback = (previousValue,currentValue)=> previousValue+currentValue
    res = num.reduce(callback),
    res1 = num .reduce(callback,initialValue)
console.log(res) //24
console.log(res1) //34

2.求最小值和最小值的索引号

let num = [100,50,1,5,8,10],
        callback = (previousValue,currentValue,index) => {
        if(currentValue

3.计算字符串中每个字符的出现次数

let srtRepeat = [..."abcdaabcaadd"].reduce((res, cur)=> {
        res[cur] ? res[cur] ++ : res[cur] = 1
        return res;
    }, {})
    console.log(srtRepeat); //{a: 5,b: 2,c: 2,d: 3}

你可能感兴趣的:(js高阶函数reduce() 常见案例)