gpt4 book ai didi

javascript - 遍历对象数组并通过 ID 引用返回总和

转载 作者:行者123 更新时间:2023-12-05 03:54:19 25 4
gpt4 key购买 nike

我正在获取一个包含一组对象的对象,并且我正在尝试遍历它们以通过 id 引用对数据求和。

如果我有这样的功能,这可能更容易展示而不是解释......

let projectArray = this.projects
projectArray.forEach(function (el) {
console.log(el.categoriesTotal)
})

我得到了一个很好的数组返回值,其中包含我想要的对象,看起来像这样......

[
{ _id: 6, total: 4478.4 },
{ _id: 1, total: 110248.13 },
{ _id: 7, total: 663695.1 }
]
[
{ _id: 7, total: 31278 },
{ _id: 1, total: 67174.66 },
{ _id: 4, total: 3712.8 },
{ _id: 8, total: 670 }
]
...

我想做的是通过 id 引用返回总和,例如

_id: 1, total: 177422.79,
_id: 6, total: 4478.4

我认为我想要的方法是“减少”,但我尝试遵循 this answer ,我收到一条错误消息,告诉我“reduce 不是一个函数”,这可能是因为我试图“减少”多个数组。

如何返回这些数组的总和?

最佳答案

const data = [
[
{ _id: 6, total: 4478.4 },
{ _id: 1, total: 110248.13 },
{ _id: 7, total: 663695.1 }
],
[
{ _id: 7, total: 31278 },
{ _id: 1, total: 67174.66 },
{ _id: 4, total: 3712.8 },
{ _id: 8, total: 670 }
]
];

let temp = {};
data.forEach( arrayOfObjects => {
arrayOfObjects.forEach( obj => {
if(temp[obj._id] != null) {
temp[obj._id] += obj.total
}else{
temp[obj._id] = obj.total
}
})
})
let result = [];
for ( [key,value] of Object.entries(temp) ){
result.push({ _id: key*1, total: value })
}

console.log(result)

关于javascript - 遍历对象数组并通过 ID 引用返回总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61095971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com