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 方法能够继续迭代数组。虽然这种方法可以达到目的,但它可能会让代码更难理解,因此不太推荐使用。


@漏刻有时

你可能感兴趣的:(AIGC,javascript,开发语言,ecmascript)