Tengo este código, cuenta a todas las personas en línea de todos los gremios, se muestra así, por ejemplo, 5 gremios:
12 13 14 15 16
Uso este código, pero quiero que regrese como 1 total y no como 5 valores separados. Saludos
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); })Como dijo @cmdchess , puede usar esta solución usando el operador de asignación de suma ( += ). Por ejemplo, esto debería funcionar:
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); También puede lograr esto usando el operador de incremento ( ++ ). Vea mi respuesta aquí para esa solución. Esto también debería funcionar usando eso:
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);¡Esperaba que esto ayudara!