2014-11-02 2 views
-1

I가 다음 개체 (라고 message_tags) : 그것은 88을 말한다 곳방법이 개체의 값을 검색 할

var id = message_tags[88][0].id 

하지만 :

{ 
    "88": [ 
    { 
     "id":"864794113531613", 
     "name":"Luis Angel Rodriguez", 
     "type":"user", 
     "offset":88, 
     "length":20 
    } 
    ], 
    "112": [ 
    { 
     "id":"640891773501", 
     "name":"Carl Champion Jr.", 
     "type":"user", 
     "offset":112, 
     "length":17 
    } 
    ] 
} 

나는 이런 식으로 뭔가를 사용하여의 값을 얻을 수 있습니다 그리고 112은 항상 다른 숫자가 될 것이고, 어떤 숫자가 될지를 알 수있는 유일한 방법은 오프셋을 얻는 것입니다.

숫자가 무엇인지 모르는이 객체를 반복 할 수 있습니까? 이 반환로 (message_tags[0]을 사용할 수 없습니다 정의되지 않은

답변

1

당신은이 같은 객체를 반복 할 수 있습니다 : 당신은 프로토 타입 체인이 깨끗한 것을 100 % 확신하는 경우

for (var thisKey in message_tags) { 
    if (message_tags.hasOwnProperty(thisKey)) { 
    console.log(thisKey); 
    console.log(message_tags[thisKey]); 
    } 
} 

, 당신은 생략 할 수 있습니다 .. 당신이 모르는 경우 hasOwnProperty() 확인 수단은, 확실히에두고 어떤

+0

EXC을 ellent, 고마워! –

1

을이 시도 :

obj = { 
    "88": [ 
    { 
     "id":"864794113531613", 
     "name":"Luis Angel Rodriguez", 
     "type":"user", 
     "offset":88, 
     "length":20 
    } 
    ], 
    "112": [ 
    { 
     "id":"640891773501", 
     "name":"Carl Champion Jr.", 
     "type":"user", 
     "offset":112, 
     "length":17 
    } 
    ] 
} 

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
    alert(key + " -> " + obj[key]); 
    } 
} 
+0

우수, 감사합니다! –

관련 문제