需求如题,对一个数组(可能是纯数字或者是一个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);
文章评论