美文网首页
js高阶函数reduce() 常见案例

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

作者: 储锋 | 来源:发表于2018-12-20 16:35 被阅读0次

基本概念

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<previousValue.val){
            previousValue.val = currentValue;
            previousValue.index = index;
        }
        return previousValue
        },
    minVal = num.reduce(callback,{val:num[0],index:0});
    console.log(minVal);//{index: 2,val: 1}

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() 常见案例

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩...

  • Kotlin开发知识(二)

    高阶函数 传入或者返回函数的函数 1.常见高阶函数 forEach map flatMap reduce 累积数据...

  • 高阶组件

    高阶函数:接受一个或多个函数并返回一个函数 JS中,array的map、filter、reduce等方法就是高阶函...

  • react 高阶组件

    先介绍一下高阶这个词,我们知道js里面有高阶函数,比如map、some、reduce和sort等,那么高阶组件就是...

  • Kotlin中函数式编程API(4)✔️聚合函数

    常见的聚合函数除了 reduce 外还有11个,如下: 案例

  • Swift 高阶函数

    高阶函数之Reduce public func reduce(_ initialResult: R...

  • Swift - 高阶函数map、flatMap、filter、r

    Swift 提供了如下几个高阶函数:map、flatMap、filter、reduce。使用高阶函数进行函数式编程...

  • 数组的高级操作

    Swift提供了如下几个高阶函数:map、flatMap、filter、reduce。使用高阶函数进行函数式编程不...

  • Python自带函数

    输入输出函数 输出显示 高阶函数 map()函数 reduce()函数 filter()函数

  • python装饰器(函数)

    1、作用域:L_E_G_B 2、高阶函数 高阶函数-map、filter、reduce这三个函数均为高阶函数,其也...

网友评论

      本文标题:js高阶函数reduce() 常见案例

      本文链接:https://www.haomeiwen.com/subject/ntijkqtx.html