JS reduce函数用法记录

定义和用法

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

array.reduce(function(prev, cur, currentIndex, arr), initialValue)
:param function(prev, cur, index, arr) 必需。用于执行每个数组元素的函数。
函数参数:
    prev:	必需。初始值, 或者计算结束后的返回值。
    cur:  必需。当前元素
    currentIndex:  可选。当前元素的索引
    arr:  可选。当前元素所属的数组对象。
:param initialValue: 可选。传递给函数的初始值

注意: 没有第二个参数的时候prev初始值默认为数组的第一项,此时循环从数组的第二项开始,有第二个参数的时候prev为第二个参数值,此时循环从数组的第一项开始。

常见应用:

1. 求和:

const arr = [15, 19, 10, 14, 26, 8];
const total = arr.reduce((prev, cur) => {
	return prev + cur;
})
console.log(total);  //数组的和

/**
 * 更加简洁的写法
 */
const arr = [15, 19, 10, 14, 26, 8];
const total = arr.reduce((prev, cur) => prev + cur);
console.log(total);  //数组的和

2. 求平均

const arr = [15, 19, 10, 14, 26, 8];
const avg= arr.reduce((prev, cur, index, array) => {
     prev += cur
     if( index === array.length-1) { 
	    return prev/array.length;
      }else { 
	    return prev;
      } 
})

3. 求元素出现的次数

const arr = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 'apple', 'banana', 'cherry', 'orange', 'fig' ];
const total = arr.reduce((prev, cur) => {
	prev[cur] = (prev[cur] || 0) + 1;
	return prev;
}, {})

4. 将二维数组转换为一维数组

const data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const flat = data.reduce((prev, cur) => {
	return prev.concat(cur);
}, [])

5. 求数组最大值

const num = [1, 2, 3, 5, 5, 1]
const max_num = num.reduce((prev, cur) => {
	return Math.max(prev, cur);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值