2010-02-09 96 views
2

我有一个JS对象:访问动态命名的JavaScript对象?

var testObj = new Object(); 

,有一个叫VOLUME1属性,因此

testObj.volume1 

有一个值。我怎么会去使用的东西沿着

testObj.volume + "1" 

行给它更多的情况下访问该属性,对象实际上有更多的属性,如

testObj.volume1, testObj.volume2 and testObj.volume3 

,我想用访问它们一些迭代。我试过玩window[]元素,但没有太多成功。

谢谢!

回答

7
testObj["volume" + 1] 

但实际上你想在这里的数组

testObj.volume = [...] 
    testObj.volume[1] = whatever 
+0

卫生署!我真是个白痴! – Rio 2010-02-09 22:07:48

0

使用的东西在testObj["volume" + "1"]时尚;)

的符号object.propertyobject["property"](几乎),相当于在JavaScript。

-1

您可以使用for循环与in操作。

for(var PropName in testObj) { 
    var PropValue = testObj[PropName]; 
    .... 
}

在情况下,你只是想开始与“价值”只与名称的属性,你也可以这样做:

for(var PropName in testObj) { 
    if (!/^value[0-9]$/.match(PropName)) 
     continue; 
    var PropValue = testObj[PropName]; 
    .... 
}

,或者如果“价值”后的数字总是不断你可以使用一个基本的循环。

for(var I = 0; I <= LastIndex; I++) { 
    var PropName = "value" + I; 
    var PropValue = testObj[PropName]; 
    .... 
}

希望这会有所帮助。

2

题外话,它被认为是更好初步实践做

var testObj = {}; 

代替

var testObj = new Object(); 
+0

对不起,我是新的stackoverflow – hojberg 2010-02-10 11:43:28