Discordjs 如何在 ForEach 循环中计数并获得总值?

Discordjs how to count in ForEach loop and get a total value?

我有这个代码,它统计了所有公会的所有在线人数, 它显示如下,例如 5 个公会:

12 13 14 15 16

我使用此代码,但我希望它 return 总共 1 个,而不是 5 个单独的值。 此致

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

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

console.log("alles",totalMembers);
         
         })
 

正如 @cmdchess 所说,您可以使用加法赋值运算符 (+=) 来使用此解决方案。例如,这应该有效:

let totalMembers = 0;
client.guilds.cache.forEach((guild) => {
    const total = guild.members.cache.filter(member => member.presence?.status === 'online').size;
    totalMembers += total;
});

console.log('alles', totalMembers);

您也可以使用增量运算符 (++) 实现此目的。有关该解决方案,请参阅我的回答 。这也应该可以使用:

let userCount = 0;
client.guilds.cache.forEach((guild) => {
    Array.from(guild.members.cache.filter(member => member.presence?.status === 'online').values()).forEach(() => userCount++);
});

console.log(userCount);

希望对您有所帮助!