javascript二维数组(7)数组指定元素求和
项目需求
对指定数据中的score求和
const data = [ { name: 'Alice', age: 23, score: 85 }, { name: 'Bob', age: 30, score: 90 }, { name: 'Charlie', age: 35, score: 80 }
];
1.封装函数
这个函数接受两个参数:一个对象数组和一个键名(也就是你想要相加的属性名)。函数使用了 reduce 方法来对数组进行迭代,并将每个对象中的指定属性的值加起来。
function sumByKey(array, key) { return array.reduce((sum, obj) => { return sum + (obj[key] || 0); }, 0);
}
2.使用 forEach
循环
function sumByKeyUsingForEach(array, key) {let sum = 0;array.forEach(obj => {sum += obj[key] || 0;});return sum;
}
这个函数和之前的 sumByKey
函数做的事情一样,只不过它使用了 forEach
循环来迭代数组,而不是 reduce
方法。
3.使用 every
方法
虽然 every
方法通常用于检查数组中的每个元素是否都满足某个条件,但也可以用它来计算对象数组中某个属性的总和。不过,这种方法可能会让代码更难理解:
function sumByKeyUsingEvery(array, key) {let sum = 0;array.every(obj => {sum += obj[key] || 0;return true; // 让 every 方法继续迭代数组});return sum;
}
这个函数和前面的两个函数做的事情一样,但它使用了 every
方法来迭代数组。注意,我们必须返回 true
,以便 every
方法能够继续迭代数组。虽然这种方法可以达到目的,但它可能会让代码更难理解,因此不太推荐使用。
@漏刻有时