JavaScript

js的reduce方法

2020-06-15  本文已影响0人  Lia代码猪崽

定义和用法

参考: https://www.runoob.com/jsref/jsref-reduce.html

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

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。

语法

参考: https://www.runoob.com/jsref/jsref-reduce.html

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

参数

参考: https://www.runoob.com/jsref/jsref-reduce.html

参数 描述
function(total, currentValue, index, arr) 必需。用于执行每个数组元素的函数。 必需。用于执行每个数组元素的函数。
函数参数:
参数 描述
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值

执行每个数组元素的函数的参数详解:

参数 描述
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。

练练手

参考:https://www.jb51.net/article/163236.htm

[[0, 1], [2, 3]].reduce(
 (acc, cur) => {
  return acc.concat(cur);
 },
 [1, 2]
);

解析:

  1. 这方法的初始值为[1, 2]
  2. [[0, 1], [2, 3]] 数组调用了reduce()方法,此数组有两个元素,元素都是数组
  3. reduce()方法里传入了一个箭头函数,acc为累积计算的值,cur参数代表当前元素的值,返回结果为拼接数组

所以答案为:[1,2, 0, 1, 2, 3]

  1. [1, 2].concat([0, 1]); 结果为 [1,2, 0, 1]
  2. [1,2, 0, 1].concat([2, 3]); 结果为 [1,2, 0, 1, 2, 3]
上一篇 下一篇

猜你喜欢

热点阅读