我试图创建一个读取Dota 2英雄数据的系统,在这个系统中我必须存储大量关于每个英雄的数据(力量增益,内部增益,敏捷性增益)(浮动)以及什么他们的主要属性是。
这是我到目前为止所做的:
const Heroes = {
Abaddon: 'Strength',
Alchemist: 'Strength',
AncientApparition: 'Intelligence',
AntiMage: 'Agility',
ArcWarden:'Agility',
Axe:'Strength',
}
尝试了这个:
const Heroes = {
Abaddon: ('Strength','3.4', '2.4', '1.8', true),
Alchemist: ('Strength','2.8', '2.3', '1.6', true),
}
console.log(Heroes.Abaddon)
输出只是最后一个值(true)
答案 0 :(得分:2)
您可以获得创造性并使用像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
}
}
};
访问这些值非常简单。
console.log(Heroes.Abaddon.primaryAttribute);
console.log(Heroes.Alchemist.attributeGains.agility);
我不确定你为什么特别需要一个Enum,但最后,你将制作一个复杂但标准的JavaScript对象。
答案 1 :(得分:0)
你不能用JavaScript做到这一点。括号只是额外的。尝试使用数组:
const Heroes = {
Abaddon: ['Strength','3.4', '2.4', '1.8', true],
Alchemist: ['Strength','2.8', '2.3', '1.6', true],
}
console.log(Heroes.Abaddon)