Итак, это название может быть неправильным, но я действительно не знаю, как задать этот вопрос: я пишу бота, используя Discord.js, и я пытаюсь ответьте строку из перечисления на основе приведенного сообщения.Использование строки внутри как имя функции (Javascript)
const Heroes = {
VengefulSpirit: {
inCaptainsMode: true,
primaryAttribute:'Agility',
attributeGains:{
Strength: 2.6,
Agility: 3.3,
Intelligence: 1.5
},
},
}
Вот Input
case 'venge': case 'vengeful spirit': case 'Vengeful Spirit':
message.reply(getHeroDetails('VengefulSpirit'));
И, к сожалению не работает выход
function getHeroDetails(heroName){
var heroDetails = '';
heroDetails += 'Primary Attribute: ';
heroDetails += Heroes.heroName.primaryAttribute.toString();
heroDetails += '\n In captain\'s mode: ';
heroDetails += Heroes.heroName.inCaptainsMode.toString();
heroDetails += '\n Strength gain: ';
heroDetails += Heroes.heroName.attributeGains.Strength.toString();
heroDetails += '\n Agility gain: ';
heroDetails += Heroes.heroName.attributeGains.Agility.toString();
heroDetails += '\n Intelligence gain: ';
heroDetails += Heroes.heroName.attributeGains.Intelligence.toString();
return heroDetails;
}
Теперь я использую heroName в качестве входной строки так, в этом случае он будет VengefulSpirit и если я использовал его взамен heroName во всех этих вызовах, функция работает правильно. Я просто не знаю, как использовать heroName вместо hardcoding для каждого героя (таких как 112). Я пытаюсь создать динамическую функцию, чтобы она была короче.
Thankyou! это сработало – Infinite