javascript - 使用其中的字符串作为函数名称(Javascript)

标签 javascript string function enums

好吧,这个标题可能不正确,但我真的不知道如何问这个问题:我正在使用 Discord.js 编写一个机器人,并且我正在尝试根据给定的消息从枚举回复字符串.

const Heroes = {
VengefulSpirit: {
inCaptainsMode: true,
primaryAttribute:'Agility',
    attributeGains:{
    Strength: 2.6,
    Agility: 3.3,
    Intelligence: 1.5
    },

},
}

这是输入

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 而不是为每个英雄(大约有 112 个)硬编码一个函数。我正在尝试创建一个动态函数,以便它更短。

最佳答案

使用 Heroes[hero Name] 访问 Heroes 对象的键,而不是 Heroes.hero Name

关于javascript - 使用其中的字符串作为函数名称(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41441004/

相关文章:

javascript - 获取正确的 map 边界

javascript - JQuery 将调色板颜色应用于 html 页面中的任何内容

javascript - 使用不带引号的路径设置 cookie 是否安全?

c - 如何在 C 中读取其中包含空格的字符串?

performance - 使用可重用代码编写过程的推荐做法是什么?

c++ - 无法从函数返回结构

C - 函数参数和 "<<"运算符

javascript - jQuery 选择数据属性并隐藏

java - 字符串替换方法在 android studio 中不起作用

c# - 提取以 x 开头以 y 结尾的字符串