获取对象数组中每个计数的总和 javascript
get total sum every count inside array of objects javascript
这应该是一个简单的任务,但我遇到了一些麻烦
正在做。
我有以下对象:
{
"chatRoom": [
{
"_count": {
"publicMessages": 10
}
},
{
"_count": {
"publicMessages": 10
}
},
{
"_count": {
"publicMessages": 10
}
}
],
}
我想得到每个值的总和
在“publicMessages”中
期望的输出:
{
"totalMessages": 30
}
您可以使用Array.reduce()
功能。如果该对象位于名为 obj
的变量中,您可以使用以下方法实现:
const result = {
totalMessages: obj.chatRoom.reduce((acc, cur) => acc + cur._count.publicMessages, 0)
};
Array.reduce() 是解决方案,您可以 运行 像这样:
const obj={chatRoom:[{_count:{publicMessages:10}},{_count:{publicMessages:10}},{_count:{publicMessages:10}}]};
let sum = obj.chatRoom.reduce( (acc, curr)=>{ return acc+=curr._count.publicMessages??0},0);
console.log(sum);
如果您想要比 reduce
更详细和更易于理解的内容,一个简单的 for/of 循环可能会对您有所帮助。
const data={chatRoom:[{_count:{publicMessages:10}},{_count:{publicMessages:10}},{_count:{publicMessages:10}}]};
// Initialise the total
let totalMessages = 0;
// Loop over the chatRoom array of objects
// and add the publicMessages value to the total
for (const obj of data.chatRoom) {
totalMessages += obj._count.publicMessages;
}
// Log the total
console.log({ totalMessages });
这应该是一个简单的任务,但我遇到了一些麻烦
正在做。
我有以下对象:
{
"chatRoom": [
{
"_count": {
"publicMessages": 10
}
},
{
"_count": {
"publicMessages": 10
}
},
{
"_count": {
"publicMessages": 10
}
}
],
}
我想得到每个值的总和
在“publicMessages”中
期望的输出:
{
"totalMessages": 30
}
您可以使用Array.reduce()
功能。如果该对象位于名为 obj
的变量中,您可以使用以下方法实现:
const result = {
totalMessages: obj.chatRoom.reduce((acc, cur) => acc + cur._count.publicMessages, 0)
};
Array.reduce() 是解决方案,您可以 运行 像这样:
const obj={chatRoom:[{_count:{publicMessages:10}},{_count:{publicMessages:10}},{_count:{publicMessages:10}}]};
let sum = obj.chatRoom.reduce( (acc, curr)=>{ return acc+=curr._count.publicMessages??0},0);
console.log(sum);
如果您想要比 reduce
更详细和更易于理解的内容,一个简单的 for/of 循环可能会对您有所帮助。
const data={chatRoom:[{_count:{publicMessages:10}},{_count:{publicMessages:10}},{_count:{publicMessages:10}}]};
// Initialise the total
let totalMessages = 0;
// Loop over the chatRoom array of objects
// and add the publicMessages value to the total
for (const obj of data.chatRoom) {
totalMessages += obj._count.publicMessages;
}
// Log the total
console.log({ totalMessages });