【问题标题】:How to sum the values of multiple items in a JavaScript object?如何对 JavaScript 对象中多个项目的值求和?
【发布时间】:2023-03-22 18:51:01
【问题描述】:

我想对多个对象的值求和。

我有一个包含示例 3 项的数组,这会有所不同,可以是任意数字。

_items: 
0: {...}
1: {...}
2: {...}

每个项目都有以下数据:

0: 
dayOfYear: 357
dayOfWeek: 4
noOfUnits: "11"
_id: "12345"
_owner: "12345"
_createdDate: "Thu Dec 23 2021"
year: 2021
_updatedDate: "Thu Dec 23 2021"
week: 51
userId: "12345"
type: "Type 1"

我想添加noOfUnits 变量的值。例如,在项目 0 中的值为 11,项目 1 是 2,项目 2 是 5。总数将变为18。这不限于 3 个项目,而是根据从数据库中提取的项目数量而有所不同。

谢谢,节日快乐!

【问题讨论】:

  • 您能否也包含您迄今为止尝试过的任何代码?
  • 这只是一个简单的map和reduce操作:_items.map(x => parseInt(x.noOfUnits)).reduce((x, y) => x + y, 0)
  • 这能回答你的问题吗? How do JavaScript closures work?
  • const reducer = (previousValue, currentValue) => previousValue + Number(currentValue.noOfUnits); console.log(_items.reduce(reducer, 0));
  • 您可以使用for ... in 循环来解决您的问题。

标签: javascript arrays object sum


【解决方案1】:

你可以减少它

        const results = [
            {noOfUnits: "11"},
            {noOfUnits: "2"},
            {noOfUnits: "5"},
        ]
        console.log(results.reduce((acc, curr) => acc + Number(curr.noOfUnits), 0))

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

【讨论】:

  • 我投了反对票,因为这是一个非常常见的问题。我们最好关闭重复的问题并将它们合并为一个问题,而不是创建多个低质量的问题。此类问题在被证明不重复之前不应回答。
  • 或者我们可以在人们提出要求时帮助他们,但我想意见可能会有所不同
  • 不幸的是,it's not just my opinion。 Stack Exchange 网络是一个Q&A 站点,而不是论坛或帮助站点。因此,如果一个问题已经存在,那么应该合并它,以便存在单一的事实来源。
  • @skara9 关键是我们不应该鼓励人们回答明显可能重复的问题。我知道人们正在努力帮助 OP,但是有很多问题可以解决他们的问题。人们应该优先引导提问者解决这些主要问题,而不是分散知识。
猜你喜欢
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
相关资源
最近更新 更多