2016-10-18 4 views
0

console.logを使用してサブ値を表示しようとしていますが、到達できません。 それは戻っています:オブジェクトにサブ値を表示するJavascript

サブがここ

が定義されていないが、データと関連するコードです:

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



for (var key in obj) { 

    console.log(obj[sub]); 

} 

はどうすればこれを行うことができますか?この場合、sub1とsub2を表示したいと思います。

+0

を。あなたに? – Rex

+0

それは言う:サブは定義されていません – 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]); 
    } 
} 

結果にconsole.log(OBJ)何

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)

関連する問題