具有多个值和值类型的 Javascript 枚举

Inf*_*ite 3 javascript enums

我正在尝试制作一个读取 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)

输出只是最后一个值(真)

ppo*_*ski 8

您可以发挥创造力并像 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 对象。