Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
Nodo Javascript recorriendo una colección de roles, nodo discord.js - ¿sintaxis?

Tengo este código para recorrer una colección de roles que funciona.

 const guild = client.guilds.cache.get('827888294100074516'); await guild.roles.fetch().then(roles => { for(const role of roles) { console.log(role[1].id + ' ' + role[1].name); } });

pero ¿por qué tengo que referirme al rol como role[1] antes de que funcione?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Porque al iterar sobre un mapa de javascript (del que se deriva la colección discord.js) con for const, el valor que obtiene es una matriz de 2 longitudes donde el elemento 0 es la clave y el elemento 1 es el valor. Aquí hay un ejemplo:

 await guild.roles.fetch().then(roles => { for (const role of roles) { console.log(role[0]); // This will give you the role id console.log(role[1]); // This will give you the actual role object, like you've used in your code } }

En cuanto a reescribir su código existente para que no tenga que usar [1] cada vez que se refiera a role , puede usar la desestructuración de matrices de esta manera:

 await guild.roles.fetch().then(roles => { for (const [id, role] of roles) { // `id` is the role id and `role` is the actual role object console.log(role.id + " " + role.name); } }

También puede usar .forEach() , como:

 await guild.roles.fetch().then(roles => { roles.forEach((role, id) => { // `id` is the role id and `role` is the actual role object console.log(role.id + " " + role.name); }); }

Para obtener una lista completa de las cosas que puede hacer con JavaScript Maps, aquí está el enlace a los documentos de MDN y para obtener una lista completa de las cosas que puede hacer con discord.js Collections (que incluye las cosas que puede hacer con javascript Maps), aquí está el enlace a los documentos de la colección discord.js.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto es solo un favor personal de usar un bucle for. El error en su código es que solo obtiene la segunda posición en ese mapa (mientras cuenta desde 0).

 const guild = client.guilds.cache.get('827888294100074516'); guild.roles.fetch().then(roles =>{ for(var i in roles){ var role = roles[i]; console.log(`Role id: ${role.id} Role name: ${role.name}`) } })

El gremio es el gremio al que te diriges a buscar. Las funciones de búsqueda obtienen todos los roles. El paréntesis de funciones .then son todos los eventos que suceden después de que se completa la búsqueda. El ciclo for solo va para todas las posiciones dentro de ese mapa y luego consola. registra los datos (identificadores y nombres)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda