首页 > 解决方案 > 对象的某些值的总和

问题描述

我必须计算某些对象值的总和(不是全部)

我有这个对象:

let object = {a: 1, b: 4, c: 2, d: 3, e: 10}

我只需要对 a、c、d、e 值求和。

实际上,我使用这种方法将所有值相加并给我 20,但我需要有 16。

Object.keys(object).reduce((sum, key) => sum + parseFloat(object[key] || 0), 0)

我该怎么做这个总和?

标签: javascript

解决方案


你的 sum 函数很好,你只需要应用一个过滤器

Object.keys(object)
    .filter(key => key !== 'b')
    .reduce((sum, key) => sum + parseFloat(object[key] || 0), 0)

或者,如果你想要一个白名单

const validKeys = {
    a: true,
    b: false, // optional
    c: true,
    d: true,
    e: true
}

Object.keys(object)
    .filter(key => validKeys[key])
    .reduce((sum, key) => sum + parseFloat(object[key] || 0), 0)

推荐阅读