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

90
Vistas
Seguir una matriz basada en la variable

Estoy tratando de que mi cliente sepa qué matriz debe seguir.

 var json = [{ command: "command 1", giveRole: "884005303811702794" }, { command: "command 2", giveRole : "948609651673563179" }];
 for (var key in json) { if (json.hasOwnProperty(key)) { console.log(json[key].command); console.log(json[key].giveRole); } }
 client.on('message', message => { if (message.content.startsWith(json[key].command)) { target.roles.add([json[key].giveRole]); } });

Por ejemplo, si envío el "comando 1", debería dar el rol "884005303811702794" y no "948609651673563179".

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

0

Así que tienes que buscarlo. Puedes usar find para hacerlo.

 var json = [{ command: "command 1", giveRole: "884005303811702794" }, { command: "command 2", giveRole: "948609651673563179" }]; function getCommand (command) { return json.find(function (item) { return item.command === command; }); } console.log("command 1", getCommand("command 1")); console.log("command 2", getCommand("command 2")); console.log("command 3", getCommand("command 3"));

Otra opción es cambiar sus comandos para que sea un objeto en lugar de una matriz.

 var myCommands = { "command 1": { giveRole: "884005303811702794" }, "command 2": { giveRole: "948609651673563179" }, }; function getCommand(command) { return myCommands[command] || null; } console.log("command 1", getCommand("command 1")); console.log("command 2", getCommand("command 2")); console.log("command 3", getCommand("command 3"));

Y si el comando no es la cadena completa, puede repetir

 var json = [{ command: "command 1", giveRole: "884005303811702794" }, { command: "command 2", giveRole: "948609651673563179" }]; function getCommand (command) { return json.find(function (item) { return command.toLowerCase().startsWith(item.command); }); } console.log("command 1", getCommand("command 1 eat pizza")); console.log("command 2", getCommand("command 2 drink water")); console.log("command 3", getCommand("command 3 dance"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

En primer lugar, parece que intenta encontrar el elemento en su matriz usando una clave, pero su matriz no está codificada.

En Javascript, puede usar el método de búsqueda en matrices. Esto devolverá el primer elemento de la matriz que devuelve un valor verdadero.

Según el ejemplo del Doc, debería poder encontrar el comando válido con esto:

 let json = [{ command: "command 1", giveRole: "884005303811702794" }, { command: "command 2", giveRole : "948609651673563179" }]; const command = json.find(element => element.command === 'command 1');

Otra buena manera de almacenar sus comandos sería almacenarlos en un objeto/matrices asociativas. Ex:

 const commands = { command1: '884005303811702794', command2: '948609651673563179', } console.log('command1', commands['command1']) console.log('command2', commands['command2'])

De esa manera, podría simplemente usar el valor del comando para tener el rol que desea.

En su situación, parece que desea que un bot de Discord asigne un rol cuando un mensaje comienza con "comando 1" o "comando 2". Si implementa una matriz con clave, se vería así:

 const commands = { command1: '884005303811702794', command2: '948609651673563179', } client.on('message', message => { if (commands.hasOwnProperty(message.content)) { target.roles.add(commands[message.content]); } });
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