JS的reduce的介绍和应用

1 reduce的介绍

语法

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
  1. callback 执行数组中的每个值的函数,一般包含四个参数
  2. accumulator 累计器累计回调的返回值,它是上一次调用回调时返回的累积值,或initialValue
  3. currentValue 数组正在处理的元素
  4. index(可选)数组中正在处理的当前元素的索引。如果提供了initialValue,则起始索引号为0,否则从1开始。
  5. array(可选)调用reduce的数组
  6. initialValue(可选)作为第一次调用callback函数时的第一个参数的值。如果没有提供初始值,则将使用数组中的第一个元素。在没有初始值的空数组上调用reduce将报错。

返回值

          函数累计处理的结果

描述:

          reduce为数组中的每一个元素依次执行callback函数,不包括数组中被删除或从未被赋值的元素接收四个参数。

  1. accumulator 累计器
  2. currentValue 当前值
  3. currentIndex 当前索引
  4. array 数组

      reduce回调函数第一次执行时,accumulator 和currentValue的取值有两种情况:如果调用reduce()时提供了initialValue,accumulator取值为initialValue,currentValue取数组中的第一个值;如果没有提供 initialValue,那么accumulator取数组中的第一个值,currentValue取数组中的第二个值。

reduce如何运行的如下图所示
在这里插入图片描述

2 reduce的用法

2.1 数组中求和,最大值,最小值

// 1 数组中所有值的和
var arr1 = [1,2,3,4,5]
var sum1 = arr1.reduce(function (accumulator,currentValue) {
   
    return accumulator+currentValue;
},0)
console.log(sum1) // 15

// 最大值
var max = arr1.reduce(function (prev,cur) {
   
    return Math.max(prev,cur)
},0)
console.log(max)

// 最小值
var min = arr1.reduce(function (prev,cur) {
   
    return Math.min(prev,cur)
},999999)
console.log(min)

2.2 累加对象数组中的和

// 2 累加对象数组里的值
var arr2 = [{
   x:1},{
   x:2},{
   x:4}];
var initialValue = 0;
var sum2 = arr2.reduce(function (accumulator,currentValue) {
   
    return accumulator + currentValue.x;
},initialValue)
console.log(sum2) // 7

2.3 数组扁平化

// 3 将二维数组转化为一维
var arr3 = [[1,2,3,4,5],[6,7,8,9,10],
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值