访问动态命名的JavaScript对象?

时间:2010-02-09 22:01:39

标签: javascript json

我有一个JS对象:

var testObj = new Object();

有一个名为volume1的属性,所以

testObj.volume1

有一个值。我将如何通过使用

的内容来访问该属性
testObj.volume + "1"

为了给它更多的上下文,该对象实际上有更多的属性,比如

testObj.volume1, testObj.volume2 and testObj.volume3 

我希望使用一些迭代来访问它们。我尝试使用window[]元素,但没有取得多大成功。

谢谢!

4 个答案:

答案 0 :(得分:7)

   testObj["volume" + 1]

但你实际上想要一个数组

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

答案 1 :(得分:2)

关于主题,这被认为是更好的做法

var testObj = {};

而不是

var testObj = new Object();

答案 2 :(得分:0)

testObj["volume" + "1"];)

的方式使用某些内容

符号object.propertyobject["property"]在javascript中几乎相同。

答案 3 :(得分:-1)

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

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

如果您只想要名称以'value'开头的属性,您也可以这样做:

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

或者,如果'value'之后的数字始终是连续的,你可以使用一个基本的for循环。

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

希望这有帮助。