[Javascript]利用MapReduce对数组的某个属性求和、求平均值

2022-01-26 460点热度 0人点赞 0条评论

需求如题,对一个数组(可能是纯数字或者是一个object的数组,对某个属性求和或均值)

传统的方式,for循环累加就不提了,这里使用的是MapReduce的方式。

// 对纯数字的数组请求求和
var items1 = [1,2,3,4];
// 直接使用reduce求和
var total1 = items1.reduce((a, b) => a + b);

// 对数组(内含对象)的求和和均值,例如对年龄求和求均值
var items2 = [{name:"Terry", age: 18}, {name:"Tom", age: 28}, {name:"Jerry", age: 26}]
var total2 = items2.map(obj => obj.age).reduce((a, b) => a + b);

// 求均值,第一种方式,把求和的结果除以求组长度
var average2 = total2 / items2.length;
// 求均值的第二种方式:
var average3 = items2.map(obj => obj.age).reduce(function (avg, value, _, { length }) {
    return avg + value / length;
}, 0);

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论