• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

196
Views
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?

almost 3 years ago · Juan Pablo Isaza
2 answers
Answer question

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.

almost 3 years ago · Juan Pablo Isaza Report

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)

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error