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
标签: JavaScriptJava