reduce()

Posted namehou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reduce()相关的知识,希望对你有一定的参考价值。

https://www.jianshu.com/p/e375ba1cfc47

 

1. 语法:arr.reduce(callback,[initialValue])

reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

 

callback (执行数组中每个值的函数,包含四个参数)

    1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    2、currentValue (数组中当前被处理的元素)
    3、index (当前元素在数组中的索引)
    4、array (调用 reduce 的数组)

initialValue (作为第一次调用 callback 的第一个参数。)

2. 例
eg:
var arr = [1,2,3,4];
var sum = arr.reduce(function(prev,cur,index,arr){
console.log(prev,cur,index);
return prev + cur;
})
console.log(arr,sum)

// 打印结果:
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4, 5] 15
 
 
<script>
var arr = [1,2,3,4];
var sum = arr.reduce(function(prev,cur,index,arr){
console.log(prev,cur,index);
return prev + cur;
},0)//注意这里设置了初始值
console.log(arr,sum)
 
// 打印结果:
// 0 1 0
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4] 10
 
技术图片

 

3.简单用法

var  arr = [1,2,3,4]

var  sum =  arr.reduce((x,y) => x+y)

var  mul =  arr.reduce((x,y) => x*y)

 

4.高级用法

计算数组中每个元素出现的次数

技术图片

 

技术图片

 

 

 

以上是关于reduce()的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Elastic Map Reduce:输入片段大小是不是重要

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享

JavaScript 代码片段

48个值得掌握的JavaScript代码片段(上)

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)