0

重複の可能性:
JavaScript オブジェクトのプロパティを列挙するにはどうすればよいですか?

{ 
       347655082: {
                    album:{
                            title: "A",
                            genre: "Pop",
                          }
        },

        347655083: {

                    album:{
                            title: "B",
                            genre: "Rock", 
                          }
        }
}

通常、「外側」のキーは同じなので、ネストされたオブジェクトを簡単にターゲットにすることができます。この場合、「外側」のキーは変数であり、何でもかまいません。

albums = JSON.parse(json); //parse json storing it in albums

「アルバムにはforeachメソッドがありません」と言って、アルバムでforeachを実行できません。

albums.forEach(function(album, i){


}
4

3 に答える 3

4

.forEach()配列でのみ使用できます。あなたのalbumsエンティティは であるObjectため、使用する必要がありますfor ... in ...)

for (var key in albums) {
    if (albums.hasOwnProperty(key)) {
        // do something with albums[key]
        ...
    }
}

node.js またはその他の ES5 実装をターゲットとするコードの場合、おそらくif節を省略できますObject.prototype

于 2012-08-31T18:20:18.763 に答える
1

ES5 には、反復オブジェクト独自の列挙可能なプロパティ - Object.keys(obj)のための優れた方法があります。私は次の反復方法を好みます。

Object.keys(albums).forEach(function (key) {
   console.log(albums[key]);
});
于 2012-08-31T19:23:25.627 に答える
-1

それは有効なjsonではありません有効なjsonは次のようになります:-

    {
    "347655082": {
        "album": {
            "genre": "Pop", 
            "title": "A"
        }
    }, 
    "347655083": {
        "album": {
            "genre": "Rock", 
            "title": "B"
        }
    }
}

json のキーは、示されているように二重引用符で囲む必要があります。

json チェックアウト jsonlint.com を検証するには

于 2012-08-31T18:16:06.363 に答える