我正在尝试制作一个读取 Dota 2 英雄数据的系统,在这个系统中,我必须存储关于每个英雄的大量数据(力量增益、智力增益、敏捷增益)(浮动)以及他们的主要属性是什么。
这是我到目前为止:
const Heroes = {
Abaddon: 'Strength',
Alchemist: 'Strength',
AncientApparition: 'Intelligence',
AntiMage: 'Agility',
ArcWarden:'Agility',
Axe:'Strength',
}
Run Code Online (Sandbox Code Playgroud)
试过这个:
const Heroes = {
Abaddon: ('Strength','3.4', '2.4', '1.8', true),
Alchemist: ('Strength','2.8', '2.3', '1.6', true),
}
console.log(Heroes.Abaddon)
Run Code Online (Sandbox Code Playgroud)
输出只是最后一个值(真)
您可以发挥创造力并像 Java 一样使用枚举,这不仅仅是一种像许多其他语言一样重命名整数的方法。或者你可以简单地使用一个标准的 JavaScript 对象,如下所示:
const Heroes = {
Abaddon: {
primaryAttribute: 'Strength',
attributeGains: {
strength: 3.4,
intelligence: 2.4,
agility: 1.8
}
},
Alchemist: {
primaryAttribute: 'Strength',
attributeGains: {
strength: 2.8,
intelligence: 2.3,
agility: 1.6
}
}
};
Run Code Online (Sandbox Code Playgroud)
访问这些值与您期望的一样简单。
console.log(Heroes.Abaddon.primaryAttribute);
console.log(Heroes.Alchemist.attributeGains.agility);
Run Code Online (Sandbox Code Playgroud)
我不确定您为什么特别需要 Enum,但最终,您将创建一个复杂但标准的 JavaScript 对象。