2014-09-08 3 views
1

안녕하세요,이 배열에서 데이터를 가져올 수 없습니다.자바 스크립트에서 대괄호로 묶인 여러 배열의 루프

var myvar = { 
"403": { 
    "3": { 
     "name": "girl", 
     "types": { 
      "1": { 
       "name": "pants", 
       "sizes": [{ 
        "230": "50/56  (0-2 mon)" 
       }, { 
        "231": "62/68  (2-6 mon)" 
       }, { 
        "232": "74/80  (6-12 mon)" 
       }] 
      }, 
      "4": { 
       "name": "tshirt", 
       "sizes": [{ 
        "230": "50/56  (0-2 mon)" 
       }, { 
        "231": "62/68  (2-6 mon)" 
       }, { 
        "232": "74/80  (6-12 mon)" 
       }] 
      } 
     } 
    }, 
    "4": { 
     "name": "boy", 
     "types": { 
      "1": { 
       "name": "Byxor", 
       "sizes": [{ 
        "230": "50/56  (0-2 mon)" 
       }, { 
        "231": "62/68  (2-6 mon)" 
       }] 
      } 
     } 
    } 
}, 
"401": { 
    "1": { 
     "name": "woman", 
     "types": { 
      "2": { 
       "name": "Jeans", 
       "sizes": [{ 
        "40": "25 inch" 
       }, { 
        "41": "26 inch" 
       }] 
      }, 
      "1": { 
       "name": "Tshirt", 
       "sizes": [{ 
        "60": "32 (XS)" 
       }, { 
        "61": "34 (XS)" 
       }, { 
        "62": "36 (S)" 
       }] 
      } 
     } 
    }, 
    "2": { 
     "name": "Mr", 
     "types": { 
      "2": { 
       "name": "Jeans", 
       "sizes": [{ 
        "43": "28 inch" 
       }, { 
        "44": "29 inch" 
       }] 
      }, 
      "1": { 
       "name": "Tshirt", 
       "sizes": [{ 
        "90": "44 (S)" 
       }, { 
        "91": "46 (S)" 
       }] 
      } 
     } 
    } 
} 
}; 

내가 403, 또는 401 일 후, 그 번호의 값을 가져 오지 수있는 다른 변수 secondvar있다.

이 가능합니까? 그런 다음이 마지막 데이터에 대한 내부 데이터를 가져 오는 동일한 방법으로 thirdvariable의 값은 3과 4가됩니다.

위의 예와 같습니다. 및 'forthvariable' 대한 동일한하는 캔 (1) 및 가변 'thirdvariable'의 수가 3 미만 (4) 및 데이터 name 얻을 sizes

+1

'myvar [secondvar] [thirdvar]'추신 : 배열이 아니지만 객체가 – zerkms

답변

3

var secondvar = '403' 
var thirdvar = '3' 
var fourthvar = 'name' 

myvar[secondvar][thirdvar][fourthvar] 
+0

이 경고 (myvar [403] [3] [이름]);을 (를) 수행했지만 빈 경고가 나타납니다. –

+0

@Karim Daraf : 당신의'myvar' 내용이 당신이 우리에게 보여준 것과 일치하지 않습니다 – zerkms

+0

@KarimDaraf 당신은 이름 주위에 따옴표가 필요합니다 :'alert (myvar [403] [3] [ 'name'])' – allenylzhou

1
var secondvar = 403; 
var thirdvar = 3; 
var fourthvar = 1; 

alert(myvar[secondvar][thirdvar]['types'][fourthvar]['name']); 
alert(myvar[secondvar][thirdvar]['types'][fourthvar]['sizes']); 

jsfiddle

+0

감사합니다, 당신의 코드가 작동합니다, 그것은'alert (myvar [403] [3] [ 'name']); –

0

사용해 코드에서 볼 수있는 문제는 코드에서 객체의 키로 숫자를 사용한다는 것입니다. 이는 돈 표기법으로 속성에 액세스하려고하면 오류가 발생합니다.

myvar.403.3.name // Syntax Error 

한 가지 해결책은 문자가있는 숫자를 사용하는 것입니다. 그

myvar.t403.n3.name // "girl" 

더 좋은 방법 후

var myvar = { 
"t403": { 
    "n3": { 
     "name": "girl", 
     "types": { 

는 다른 디자인을 따르는 것입니다.

var myvar = [{ 
    "type" : "403", 
    "sizes" : [{"number" : "3"}] 
}] 

나머지는 찾을 수있을 것 같습니다.

관련 문제