discordjs return forEach 中的总用户数?

discordjs return total users in forEach?

我试过这段代码:

message.client.guilds.cache.forEach((guild) => {
     console.log(guild.memberCount)
})

它 returns 像这样:

300
200
100
etc

如何一次性得到总数,就像他们一起一样,所以它显示为 600 而不是全部分开。 我知道还有其他代码可以显示公会中的所有用户,但我只想知道如何这样做,所以我可以扩展代码并根据存在情况过滤它们。

我只是不知道如何计算 forEach 或 map 中的值

问候

//更新我需要让它像这种方法一样工作, 这显示如上日志: 100 200 300

  client.guilds.cache.forEach((guild) => {
     const total = guild.members.cache.filter(member => member.presence?.status == "online").size
     console.log("per 1", total)
    
    
     
     })

您可以编写如下函数:

   function arrSum(arr){
        total = 0;  
        arr.forEach(function(key){
            total = total + key;            
        });
        return total;
    }

并像这样使用它:

arrSum(message.client.guilds.cache);

您可以使用Array.reduce()方法。

const totalUsers = message.client.guilds.cache.map(el => el.memberCount).reduce((a,b) => a+b)

您可以使用 map + reduce 链接...您可以使用映射检索 'memberCount' 并将实际值与 reduce 相加:

    const guilds = [
    { memberCount: 100 },
    { memberCount: 200 },
    { memberCount: 300 },
    { memberCount: 400 }
];

const totalMembers = guilds
  .map((guild) => guild.memberCount)
  .reduce((prev, curr) => prev + curr, 0);

console.log(totalMembers);