Estaba codificando un comando simple de conversión de unidades para mi bot de discordia que convertiría metros a centímetros. Leí mi código varias veces y no pude encontrar nada malo en él, sin embargo, cuando ejecuto el comando, simplemente devuelve "indefinido" para el valor del resultado. También hice un punto para verificar dos veces el alcance de mis bloques de código para asegurarme de que todas las variables sean accesibles correctamente.
Código:
if (message.content.startsWith(prefix + 'convert ')) { let content = message.content.replace(prefix + 'convert ', ''); content.split(' '); let value = content[0]; let firstUnit = content[1]; let convertedUnit = content[3]; let result; let description; let embedFormula; if (firstUnit === 'm' && convertedUnit === 'cm') { const formula = (inputValue) => { return inputValue * 100; } result = formula(value); description = `${value} m to cm = **${result} cm**`; embedFormula = '`Multiply the length value by 100`'; } const conversionEmbed = new Discord.MessageEmbed() .setTitle('Unit Conversion') .setDescription(description) .setColor('#F942FF') .addFields( { name: 'Formula', value: embedFormula } ) message.delete(); message.channel.send(conversionEmbed); }Resultado:
El comando se ejecuta cuando el usuario escribe "_convert 1 m to cm" (1, por supuesto, se puede intercambiar con cualquier número).
¿Falta algo aquí?
Gracias por adelantado.
content.split() no editará las variables existentes:
let content = 'Hello!'; content.split(); console.log(content); // Still 'Hello!' console.log(content[0]); // This just gets the first characterAsí que en lugar de esto:
let content = message.content.replace(prefix + 'convert ', ''); content.split(' ');Usted debe hacer esto:
let content = message.content.replace(prefix + 'convert ', '').split(' ');