我需要求一个对象数组中类似“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)
})
你不需要两个循环,你可以简单地使用减少
和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。 我怎么能做到呢?
这就是我的目标: 如何进行转换,从而得到一个只有值的数组:
假设我有这样的对象数组: 如何从每个对象中删除时间和单词属性?我的输出应该是这样的: