2012-10-22 70 views
0

可能重复:
How do I add a property to a Javascript Object using a variable as the name?
Dynamic property names for loop of object JavascriptJavaScript的数据属性的名字读出时的名称是动态生成

在javascript函数我receveing数据,它看起来像这样的成功:

data.lvl1 
data.lvl2 
data.lvl3 
... 

让的说我只有3中的数据元素,我想以循环为他们每个人,并上升为警戒每个级别:

for(a = 1; a<= 3; a++) 
{ 
    alert(data.lvl + a); 
    //I would like to read lvl1, lvl2, lvl3 
} 

这种做法显然是错误的。 请解释当lvl数字基于增加a时,如何到达lvl1,lvl2。

+0

如果你只有这些属性,你最好使用'for ... in'循环虽然(我顺序无关紧要):https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for...in。参见als [我如何枚举JavaScript对象的属性?](http://stackoverflow.com/q/85992/218196)。 –

回答

2

如果要使用字符串访问属性名称,请使用方括号表示法。

foo.bar === foo['bar'] 

这样的:

alert(data['lvl' + a]); 

但它会更好地调整你的数据,让你有这样的事情:

data = { lvl: [1,2,3] } 

,而不是

data = { lvl1: 1, lvl2: 2, lvl3: 3 } 
+0

谢谢你,先生,感觉有点惭愧:) – dllhell

+0

所以应该昆汀,因为没有打扰找到其他几十个相同的问题之一;-) – Alnitak

+0

是的,它必须是多余的问题,但我不知道如何表达我的问题在短时间内,所以我没有找到任何有用的答案。对不起 – dllhell