读心悦

  • 读心随笔
  • 读心里话
  • 计算机
  1. 首页
  2. Javascript
  3. 正文

ES5新增的reduce和reduceRight

2021年01月07日 55点热度 2人点赞 0条评论

当我们需要计算整个数组的值的时候,最先想到的方式是循环数组,然后逐个相加减:

 

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var sum0 = 0;

for (let index = 0; index < arr.length; index++) {
    sum0 = sum0 + arr[index];
}
console.log(sum0) // 55

ES5新增的reduce()和reduceRight(),来归并数组【也可以说是迭代数组的所有项,最后返回一个值】,两个方法就直接导出我们想要的结果了。这两个方法的一个区别就是:

reduce(),是从数组的第一项开始,一项一项的遍历,直到最后一项;

reduceRight(),从数组的最后一项开始遍历,直到第一项;

 

最后,这两个方法接收两个参数:

 

参数1:在每一项上调用的函数【必选】;

参数2:作为归并基础的初始值【可选】。

 

参数1是一个函数,它可接收4个参数:

arr.reduce((pre, cur, index, arr) => {
    // console.log(index);   // 012345678
    // console.log(arr)
    return pre + cur
})

pre:上一个值

cur:当前值

index:索引

arr:数组对象

 

如何使用??源码如下:

 

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var sum0 = 0;

for (let index = 0; index < arr.length; index++) {
    sum0 = sum0 + arr[index];
}
console.log(sum0)
const sum = arr.reduce((pre, cur, index, arr) => {
    // console.log(index);   // 012345678
    // console.log(arr)
    return pre + cur
});
console.log(sum)   // 55


const sum1 = arr.reduceRight((pre, cur, index, arr) => {

    console.log(index)//876543210
    return pre + cur
})

console.log(sum1)

 

 

赞(1)微海报分享
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: JavaScript
最后更新:2021年01月07日

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

标签聚合
mysql Echarts react hook git Nginx 阅读 node CSS 随笔 flutter vue taro JavaScript 闲谈 redux 悦读 小程序 canvas
推荐文章
  1. JavaScript设计模式-技巧型设计模式简介
  2. JavaScript设计模式-行为设计模式
  3. JavaScript设计模式-架构型设计模式
  4. JavaScript设计模式-结构型设计模式
分类
  • flutter (11)
  • html/css (23)
  • Javascript (22)
  • Mysql (2)
  • node (2)
  • React (27)
  • vue (1)
  • 小程序 (41)
  • 悦读 (8)
  • 未分类 (2)
  • 读心里话 (9)

COPYRIGHT © 2020 读心悦

黔ICP备20005501号

黔公网安备52011502001078号