This question already has answers here:
how to access object property using variable [duplicate]
(2个答案)
3年前关闭。
所以我有一个很大的数组,像这样:
当我选择想要的生物时,我需要这样称呼它:
现在,我希望能够通过
但是我不知道如何在
我尝试使用
但这似乎不起作用。必须是一个简单的解决方案吗?
在您的情况下,您的对象更大,但过程相同:
输入值是生物名称的有效属性之一,即“ dragon”:
(2个答案)
3年前关闭。
所以我有一个很大的数组,像这样:
var enemy = {
'level1' : {
creature :
{
creature_name : {
'Goblin' : {
info: {
'c_name' : 'Goblin',
'HP' : '20',
'damage' : '3',
'loot' : [
{name: 'a wooden sword' , item: 'weapon' , value: 2},
{name: 'a golden necklace', item: 'amulet' , value: 1},
{name: 'a pair of boots' , item: 'boots' , value: 1},
{name: 'some cloth legs' , item: 'legs' , value: 3},
{name: 'a cloth helmet' , item: 'helm' , value: 2}
]
}
},
'Cow' : {
info: {
'c_name' : 'Cow',
'HP' : '10',
'damage' : '1',
'loot' : [
{name: 'a wooden sword' , item: 'weapon' , value: 2},
{name: 'a golden necklace', item: 'amulet' , value: 1},
{name: 'a pair of boots' , item: 'boots' , value: 1},
{name: 'a cloth helmet' , item: 'helm' , value: 2}
]
}
},
'dragon' : {
info: {
'c_name' : 'Cow',
'HP' : '300',
'damage' : '300',
'loot' : [
{name: 'an almighty dragon sword' , item: 'weapon' , value: 200},
{name: 'a dragon tooth', item: 'amulet' , value: 30},
{name: 'a pair of dragon boots' , item: 'boots' , value: 60},
{name: 'a dragon helmet' , item: 'helm' , value: 60}
]
}
},
}
},
},
'level2' : {
'skelleton' : {
'HP' : '40',
'damage' : '5',
'loot' : [
{name: 'a bone' , item: 'weapon' , value: 1},
{name: 'a warriors helmet' , item: 'helm' , value: 4}
]
}
}
};
当我选择想要的生物时,我需要这样称呼它:
enemy.level1.creature.creature_name.dragon.info.c_name
现在,我希望能够通过
input box
或类似的方式选择一个敌人。但是我不知道如何在
enemy.level1.creature.creature_name.dragon.info.c_name
中插入该值我尝试使用
enemy.level1.creature.creature_name.+ input_value + .info.c_name
但这似乎不起作用。必须是一个简单的解决方案吗?
最佳答案
您拥有的是对象而不是数组。您可以通过多种方式设置对象属性。一种方式是:
var myObj = {
foo: {
value : "foo"
},
bar: {
value: "bar"
}
}
myObj["foo"] = "123";
在您的情况下,您的对象更大,但过程相同:
enemy.level1.creature.creature_name[input_value].info.c_name = "whatever name";
输入值是生物名称的有效属性之一,即“ dragon”:
enemy.level1.creature.creature_name["dragon"].info.c_name = "whatever name"
09-19 14:00