美文网首页
JavaScript reduce()

JavaScript reduce()

作者: younglaker | 来源:发表于2020-03-03 14:01 被阅读0次

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

语法

arr.reduce(function(prev,cur,index,arr){
...
}, init);
  • arr 表示原数组;
  • prev 表示上一次调用回调时的返回值,或者初始值 init;
  • cur 表示当前正在处理的数组元素;
  • index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
  • init 表示初始值。

示例

数组项求和

var arr = [1, 2, 3, 5, 7, 8];

var total = arr.reduce(function (prev, cur) {
    console.log('hi', prev, cur)
    return prev + cur;
},0);

console.log('total', total)

运行结果:


image.png
var orders = [
  {num: 10},
  {num: 10},
  {num: 10},
  {num: 10}
]

var total = orders.reduce(function(sum, order){
  console.log('hi', sum, order)
  return sum + order.num
}, 0)

console.log('total', total)

运行结果:


image.png

求数组项最大值

var arr = [10, 22, 13, 45, 7, 8];

var max = arr.reduce(function (prev, cur) {
    console.log('last max', prev)
    return Math.max(prev,cur);
});

console.log('max', max)

运行结果:


image.png

数组去重

var arr = [10, 7, 22, 7, 13, 45, 7, 8, 7];

var newArr = arr.reduce(function (prev, cur) {
    prev.indexOf(cur) === -1 && prev.push(cur);
    return prev;
},[]);


① 初始化一个空数组
② 将需要去重处理的数组中的第1项在初始化数组中查找prev.indexOf(cur),如果找不到(空数组中肯定找不到)=== -1,就将该项添加到初始化数组中prev.push(cur)
③ 将需要去重处理的数组中的第2项在初始化数组中查找,如果找不到,就将该项继续添加到初始化数组中
④ ……
⑤ 将需要去重处理的数组中的第n项在初始化数组中查找,如果找不到,就将该项继续添加到初始化数组中
⑥ 将这个初始化数组返回

参考: https://www.jianshu.com/p/541b84c9df90

相关文章

  • [underscore 源码学习] reduce & 真值检测函

    map - reduce JavaScript Array.prototype 提供的 map 和 reduce ...

  • JavaScript reduce()

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

  • javascript reduce

    reduce()方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。...

  • 2019-01-24记录

    计算函数被执行次数 ---- javascript reduce()函数的用法(): reduce函数可 接受一个...

  • JavaScript数组的简化

    JavaScript中数组的常用操作之数组的简化 Array.reduce() 方法 Array.reduce(c...

  • JS Test(44道)总结

    题目来自javascript-puzzlers 1.reduce 没有设置初始值的空数组使用reduce方法会抛出...

  • 如何理解reduce()?(翻译)

    TypeScript/JavaScript函数式编程 翻译自: 《How to understand reduce...

  • JavaScript - map/reduce

    map - 基于源元素的映射方式 作用于JavaScript Array上,返回f(x)构成一组新元素Array。...

  • JavaScript Array reduce()

    运用reduce()方法,可以高效简洁的生成想要的数据结构。 total: 必需。initialValue,或函数...

  • JS基础题(2)

    1. JavaScript 数组的函数 map/forEach/reduce/filter map forEach...

网友评论

      本文标题:JavaScript reduce()

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