javascript中的reduce方法
墨初 Web前端 470阅读
在javascript脚本中,想要将数组中的所有元素进行相加或拼接,可以使用一个数组的内置函数方法reduce()。
js reduce()方法解析
reduce():此方法接收一个函数作为累加器,并遍历数组元素,将当前元素的值和上一步的计算结果相加,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
语法:
arr.reduce(function(accumulator, element, index, array) { return accumulator + element; }, initialValue);
参数:
值 | 描述 |
---|---|
accumulator | 累加器回调的值,也就是上次处理的值。 |
element | 可选,正在处理当前元素的索引。 |
index | 可选,正在处理当前元素的索引。 |
array | 可选,调用当前方法的数组 |
initialValue | 累回器的默认值,如为空则默认数组第一个元素 |
js reduce()方法用法
例1:计算数组所有元素的和
const arr = [1,2,3,4,5]; const sum = arr.reduce((s,a) => s + a); console.log(sum); // 15
例2:数组中的元素进行拼接
const arr = ['a','b','c','d']; const str = arr.reduce((s,a) => s + a); console.log(str); // abcd
例3:
let arr = [ { count: 10, num: 3, name: '张三' }, { count: 2, num: 22, name: '李四' }, { count: 13, num: 5, name: '王五' }, { count: 56, num: 4, name: '朱六' }, { count: 33, num: 12, name: '赵二' } ]; let res = arr.reduce((prev, next) => prev + next.count * next.num, 0); console.log(res); // 759
PS:
1、reduce()返回累加器的最终值
2、reduce()不会改变原有的数组
3、reduce()中累加器的值如未设置,则默认为数组中第一个元素的值
4、reduce()在处理空数组时且未设置累加器的初始值,则返回underined