hi,欢迎访问本站!
当前位置: 首页Web前端正文

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

声明:无特别说明,转载请标明本文来源!
相关推荐