2010-02-09 3 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" + "1"]의 방식으로

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

도현의 할 더 나은의 연습 간주됩니다! 나는 그런 바보 야! – Rio

0

사용 일)

표기법 object.property와 자바 스크립트에 해당하는 object["property"]있는 (거의).

-1

for 루프를 in 작동과 함께 사용할 수 있습니다.

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

를 논리합 '값'다음의 숫자는 항상 연속 인 경우

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

이 경우, 당신은 단지 이름의 속성이 전용 '가치'로 시작합니다, 당신은이 작업을 수행 할 수 있습니다 당신은 단지 for for 루프를 사용할 수 있습니다.

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

관련 문제