获取对象数组中每个计数的总和 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 });