reducer 逐个遍历数组元素,每一步都将当前元素的值与上一步的计算结果相加(上一步的计算结果是当前元素之前所有元素的总和)——直到没有更多的元素被相加。

语法:reduce(function(previousValue, currentValue, currentIndex, array) { /* ... */ }, initialValue)

参数:

一个 “reducer” 函数,包含四个参数:

  • previousValue:上一次调用 callbackFn 时的返回值。在第一次调用时,若指定了初始值 initialValue,其值则为 initialValue,否则为数组索引为 0 的元素 array[0]
  • currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值 initialValue,其值则为数组索引为 0 的元素 array[0],否则为 array[1]
  • currentIndex:数组中正在处理的元素的索引。若指定了初始值 initialValue,则起始索引号为 0,否则从索引 1 起始。
  • array:用于遍历的数组。
  •  
            // let maxarr = [1, '2', true, undefined, null]
            // // 数组.reduce(累加器,起始值)
            // // 累加器是一个函数接收4个参数
            // console.log(
            //     maxarr.reduce((sum, item, index, arr) => {
            //         console.log('sum:', sum);
            //         console.log('item:', item);
            //         console.log('index:', index);
            //         console.log('arr:', arr);
            //         // return的值会被当成下一次循环的sum
            //         return sum + item;
            //     }, 5)
            // );

    输出结果

  •  

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐