javascript二维数组(7)数组指定元素求和-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
项目需求
对指定数据中的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
方法能够继续迭代数组。虽然这种方法可以达到目的但它可能会让代码更难理解因此不太推荐使用。
@漏刻有时
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |