5

私はJavascriptとJsonに本当に慣れていないので、次のことについて助けが必要です. これはいくつかのjsonデータです:

"genres": [

 {
    "id": 28,
    "name": "Action"
 },
 {
    "id": 18,
    "name": "Drama"
 },
 {
    "id": 14,
    "name": "Fantasy"
 },
 {
    "id": 36,
    "name": "History"
 }

],

今、私はすべてのジャンルの名前を出力したいと思います

私はjquery mobileとajaxを使ってjsonデータを取得しています。私の関数内では、次のようになります。

var genres = results.genres[0].name;
$('#tmdbInfo2').html('<br>Genres: ' +genres);

この例では、ジャンルの最初の要素 (アクション) が表示されますが、すべてではありません。出力は次のようになります: アクション、ドラマ、ファンタジー、歴史。ジャンルの要素の数が異なる場合があります..

私を助けてください、それは私にとって非常に紛らわしいですO_o

4

4 に答える 4

8

プレーン Javascript

これは、ループを使用して配列の要素を反復処理する方法ですfor(誘惑された場合は、配列でループを使用しないでください)。for...in

for (var i = 0; i < results.genres.length; i++) {
    console.log( results.genres[i].name );
}

あなたの配列はresults.genresここで呼び出されます。ループ内では、results.genres[i]常に現在の要素を参照します。

jQuery

jQuery を使用しているようですので、次のようにも使用できます$.each()

$.each(results.genres, function (currentIndex, currentElem) {
    console.log( currentElem.name );
});
于 2012-12-01T10:36:28.943 に答える
4

反復する別の方法:

results.genres.forEach(function(genre) {
    console.log(genre.name);
});

あなたがやろうとしていることについて:

$('#tmdbInfo2').html(
    'Genres: ' + results.genres.map(function(genre) {
        return genre.name;
    }).join(', ')
);
于 2012-12-01T10:37:42.073 に答える