JavaScript函数式编程-高阶函数reduce(三)

概述
对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
语法

arr.reduce(callback[, initialValue])

参数

  • callback(一个在数组中每一项上调用的函数,接受四个函数:)
    • previousValue(上一次调用回调函数时的返回值,或者初始值)
    • currentValue(当前正在处理的数组元素)
    • currentIndex(当前正在处理的数组元素下标)
    • array(调用reduce()方法的数组)
  • initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)

返回值
通过最后一次调用回调函数获得的累积结果。

var orders = [
    {amount: 100},
    {amount: 238},
    {amount: 300},
    {amount: 50}
];

// 使用for循环实现累加
var total = 0;
for(var i = 0; i < orders.length; i++) {
    total += orders[i].order;
}

// 使用reduce重写
var total = orders.reduce(function(sum, order){
    return sum + order.amount;
}, 0);

// 使用es6重写
var total = orders.reduce((sum, order) => sum + order.amount, 0);

console.log(total);
// 输出为688
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容