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

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

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

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 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