2017-02-14 4 views
0

私はオブジェクトの下に国リストを持っています。オブジェクトリストを保存する正しい方法

enter image description here

私はまた、市場のリストを持っている:

enter image description here

フランスオブジェクト内のすべてのセクターを一覧表示オブジェクトの別のセットがあるように私はそれをしたいです。 Country.list [country] [sector] = selfとしてリストを保存しようとしました。しかし役に立たない。どのように私はこれを克服するだろうか?コード:

enter image description here

が効果的に、私は特定の国に入る多次元JSオブジェクトを、作成したい、そして国の部門に入ります。

+1

あなたが使用するコード([mcve]を参照)、予想される結果、現在のコードで何が起こっているのでしょうか? – evolutionxbox

+0

ここでリストのコードを共有できますか? –

+0

こんにちは。スクリーンショットを使用してコードを表示するのではなく、コードをコピー/貼り付けしてコードとしてフォーマットする必要があります。それはあなたの問題を再現しやすくし、人々があなたの質問に答えるのを助けます。上で示唆したように、最小、完全、および検証可能な例はさらに役立ちます。 –

答えて

0

、あなたはこれを試すことができます..あなたはMarketからフランスに関連するすべてのセクターが必要な場合..あなたが求めているものを

をクリアし、Countryリストに追加されていません。

var sectors = []; 

    $.each(Market.list, function(key, value){ 
    if(value.country == "France"){ 
     sectors.push(value.sector); 
     } 
    }); 

これはsectors配列にFranceに関連するすべてのセクターが追加されます。今、私たちは、あなたはおそらく、(変数ではない)文字列を与えたいメインCountry.list

Country.list[France].allSectors = sectors ; 
+0

すみません。効果的に私は多次元のJSオブジェクトを作成したいと思います。これは特定の国に入り、その後その国のセクターに入ります。 – epayne

1

に、この配列を割り当てる部門

Country.list[country]['sector'] = self; // notice, it is string 
+0

"国"が定義されていないプロパティ 'セクター'を設定できません。 – epayne

+0

'Country.list [country] .sector = self;' –

+0

同じ問題が発生しました – epayne

0

のキーとしてあなたのすべての属性は、現在と同じフラットなオブジェクトに設定されています。あなたが意味するように、それらを入れ子にしなければなりません。

Countryでは、新しいオブジェクトを作成し、それがまだ存在しない場合はCountry.listの対応する属性に割り当てる必要があります。このオブジェクトは、セクターのための同じ扱いを得るでしょう。

Countryで)次のコードは確かに

if(!Country.list[country])Country.list[country]={}; 
Country.list[country][sector]=self; 

:-)私の貧弱な説明country属性がリスト内の親オブジェクトに設定されるべきであることに注意してくださいより明確になります。

if(!Country.list[country]){ 
    Country.list[country]={'country' : country}; 
} 
Country.list[country][sector]=self; 
関連する問題