Home > Blockchain >  discordjs return total users in forEach?
discordjs return total users in forEach?

Time:02-18

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);
  • Related