Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

300
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda