0

私は、カスタム辞書と.getメソッドを使用してネストされたデータを簡単に作成できる Python のバックグラウンドから来た Javascript を初めて使用します。私がやろうとしているのは、次の形式をとるアーティスト データのネストされたオブジェクトを作成することです: artistDict[artist][albumName] = albumYear. 反復可能なアルバム オブジェクトを反復処理して、このオブジェクトをオンザフライで作成する必要があります。現在使用しているコードは次のとおりです。

albumDict = {};
albums.forEach(function(item){
albumDict[item.artist][item.name] = item.year;
});
document.write(albumDict);

このようなものは Python でも機能しないため、これは機能しませんが、これは当然のことです。ただし、Python では、.getメソッドを使用してエントリが辞書にあるかどうかを確認し、そうでない場合は作成することができます。似たようなもの、または JS で目標を達成するために使用できる他のユーティリティはありますか?

4

2 に答える 2

4

これはうまくいくはずです:(プロパティが存在しない場合は、初期化する必要があります..)

albumDict = {};
albums.forEach(function(item){
    albumDict[item.artist] = albumDict[item.artist] || {};
    albumDict[item.artist][item.name] = item.year;
});
于 2013-02-06T14:14:46.577 に答える
3

これを試して:

albums.forEach(function(item){
    albumDict[item.artist] = albumDict[item.artist] || {};
    albumDict[item.artist][item.name] = item.year;
});

その関数の最初の行はalbumDict[item.artist]、まだ存在しない場合、新しいオブジェクトに設定します。それ以外の場合は、それ自体に設定されます。

次に、辞書エントリに年を設定するだけです。

于 2013-02-06T14:15:41.080 に答える