当前位置: 首页 > 知识库问答 >
问题:

对象值的和数组[重复]

长孙深
2023-03-14

我需要求一个对象数组中类似“value”的值之和。

样本输入

array = [
{_id: "Week 1", count: 5},
{_id: "Week 2", count: 10},
{_id: "Week 1", count: 5},
{_id: "Week 3", count: 10},
{_id: "Week 3", count: 2},
{_id: "Week 2", count: 5},
{_id: "Week 3", count: 5}
]

预期产量

arrayOutput = [
{_id: "Week 1", count: 10},
{_id: "Week 2", count: 15},
{_id: "Week 3", count: 17}
]

我试过跟随,但没有达到预期效果

final = [];
array.forEach(function (data) {
    var val = array.reduce(function (previousValue, currentValue) {
            console.log(previousValue)
            return {
                [data._id] : previousValue.count + currentValue.count,
            }
        });
    final.push(val)
})

共有1个答案

邵君植
2023-03-14

你不需要两个循环,你可以简单地使用减少Map

let array = [{_id: "Week 1",count: 5},{_id: "Week 2",count: 10},{_id: "Week 1",count: 5},{_id: "Week 3",count: 10},{_id: "Week 3",count: 2},{_id: "Week 2",count: 5},{_id: "Week 3",count: 5}]


let final = array.reduce((op,inp) => {
  let {_id, count} = inp
  let obj = op.get(_id) || {_id,count:0}
  obj.count += count
  op.set(_id, obj)
  return op
},new Map())


console.log([...final.values()])
 类似资料:
  • 我有两个数组:和。 数组中的示例值:。 数组中的值示例:。 我需要创建一个JavaScript对象,将数组中的所有项放在同一个对象中。例如

  • 假设我有一个对象数组: 是否有一个数组函数允许我获得一个属性作为数组,例如: 我知道如何得到期望的结果与一个循环,我只是希望一个数组函数或函数的组合存在,可以做到这一点在一行。

  • 问题内容: 我有一些具有相同值的数组,如下所示。 如果值重复,则将相同的总和相加。对于相同的不同,无需求和。 这就是我想要的。 我陷入上述问题。我已经尽力了。但是我得到了错误的结果。我非常感谢任何建议。 问题答案: @Cloud我已根据您的要求提供了功能,感谢@MI对此总和部分进行了研究。

  • 我的数据: 预期Arr: 我的代码是通过删除重复的来简化模型: 但是我不能和s。 我怎么能做到呢?

  • 这就是我的目标: 如何进行转换,从而得到一个只有值的数组:

  • 假设我有这样的对象数组: 如何从每个对象中删除时间和单词属性?我的输出应该是这样的: