2016-10-18 3 views
0

Я пытаюсь отобразить значения sub с помощью console.log, но не могу добраться до него. Это возвращение:Javascript dispalying день дополнительных значений в объектах

к югу не определен

Вот данные и соответствующий код:

obj = [ 
     { 
      "id": "1", 
      "cat": "1", 
      "sub": { 
       "123": "sub1", 
       "654": "sub2" 
      } 
     } 
    ]; 



for (var key in obj) { 

    console.log(obj[sub]); 

} 

Как я могу это сделать? В этом случае я хочу отобразить sub1 и sub2.

+0

что делает console.log (объект); дать вам? – Rex

+0

В нем написано: sub не определено – mg2016

+0

Что делает регистрация только (obj)? – Rex

ответ

1

Ответ Ненад является более чистым и правильным. Но я думаю, что это прояснит вам структуру объекта, который вы используете:

obj = [ 
     { 
      "id": "1", 
      "cat": "1", 
      "sub": { 
       "123": "sub1", 
       "654": "sub2" 
      } 
     }, 
     { 
      "id": "2", 
      "cat": "2", 
      "sub": { 
       "abc": "sub3", 
       "def": "sub4" 
      } 
     } 
    ]; 


for (var index in obj) { 
    for (var indexSub in obj[index].sub) { 
     console.log(indexSub + ': ' + obj[index].sub[indexSub]); 
    } 
} 

Результат

123: sub1 
654: sub2 
abc: sub3 
def: sub4 
2

Вы можете использовать Object.keys() и map().

var obj = [{ 
 
    "id": "1", 
 
    "cat": "1", 
 
    "sub": { 
 
    "123": "sub1", 
 
    "654": "sub2" 
 
    } 
 
}]; 
 

 
var s = Object.keys(obj[0].sub).map(e => obj[0].sub[e]); 
 
console.log(s)

Смежные вопросы