I did try this code :
message.client.guilds.cache.forEach((guild) => {
console.log(guild.memberCount)
})
and it returns like this:
300
200
100
etc
How to get a total in one go like them all together so it shows up like 600 instead all seperate. I know there is an other code that shows all the users in the guild, but i just want to know how to do it this way, so i can expand the code and filter them on presence.
i just dont know how to total the value in a forEach or map
regards
CodePudding user response:
You can write a function like:
function arrSum(arr){
total = 0;
arr.forEach(function(key){
total = total key;
});
return total;
}
and use it like:
arrSum(message.client.guilds.cache);
CodePudding user response:
You can use the Array.reduce() method.
const totalUsers = message.client.guilds.cache.map(el => el.memberCount).reduce((a,b) => a b)
CodePudding user response:
You could use map reduce chaining...you can retrieve the 'memberCount' with the mapping and summing the actual values with the 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);