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);
我试过这段代码:
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);