2010-02-09 100 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