2017-02-14 6 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

Привет. Вместо того, чтобы показывать скриншоты, чтобы показать свой код, вы должны скопировать/вставить его и отформатировать в виде кода. Это облегчает воспроизведение вашей проблемы и помогает людям ответить на ваш вопрос. Как было предложено выше, пример Minimal, Complete и Verifiable помогает еще больше –

ответ

0

Не ясно, что вы просите ..

Если вам нужны все отрасли, связанные с франции от Market и добавить их в список Country .. то вы можете попробовать это.

var sectors = []; 

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

Это добавит все отрасли, связанные с France в sectors массиве. Теперь мы относим этот массив основного 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; 
Смежные вопросы