欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

阵列还原法细节和高级技术

最编程 2024-03-15 21:13:31
...

基本概念

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

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

语法:

arr.reduce(callback,[initialValue])

  • callback (执行数组中每个值的函数,包含四个参数)
    • previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    • currentValue (数组中当前被处理的元素,当前参与叠加的项)
    • index (当前元素在数组中的索引)
    • array (调用 reduce 的数组)
  • initialValue (作为第一次调用 callback 的第一个参数。)
    • 如果没有提供initialValue初始值,reduce会从索引为1的地方开始执行callback,跳过第一个索引
var  arr = [1, 2, 3, 4, 5];
sum = arr.reduce(function(prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
}, 0) // 这里设置了初始值0
console.log(arr, sum);
输出结果:
0 1 0 // 设置了初始值从索引0开始,没有设置的话,从1开始,没有这一行
1 2 1
3 3 2
6 4 3
10 5 4
[1, 2, 3, 4, 5] 15

可以看出,reduce函数根据初始值0,不断的进行叠加,完成最简单的总和的实现。

reduce函数的返回结果类型和传入的初始值相同,上个实例中初始值为number类型,同理,初始值也可为object类型。

参考资料1 - JS数组reduce()方法详解

推荐阅读