У меня есть следующий Javascript, определяющий массив стран и их штатов ...
var countryStateMap = [{"CountryCode":"CA","Name":"Canada","States":[{"StateCode":"S!","CountryCode":"CA","Name":"State 1"},{"StateCode":"S2","CountryCode":"CA","Name":"State 2"}]},"CountryCode":"US","Name":"United States","States":[{"StateCode":"S1","CountryCode":"US","Name":"State 1"}]}];
В зависимости от того, какую страну выбирает пользователь, мне нужно обновить параметры окна выбора для состояний из выбранной страны.объект.Я знаю, что могу внести в коллекцию страны индекс int, например, так ...
countryStateMap[0].States
Мне нужен способ получить свойство Country by CountryCode.Я знаю, что следующее не работает, но я хотел бы сделать что-то вроде этого ...
countryStateMap[CountryCode='CA'].States
Может ли это быть достигнуто без полной перестройки структуры моей коллекции или перебора набора каждый раз, чтобы найтитот, который я хочу?
ОБНОВЛЕНИЕ: Я принял ответ mVChr, потому что он работал и был самым простым решением, хотя для него требовалась вторая карта.Индекс коробки выбора страны для индексации в коллекции.Это сработало, потому что выпадающий список нашей страны также заполнялся из нашей структуры данных.Вот как мы проиндексировали ...
countryStateMap[$('#country').attr("selectedIndex")]
Если вам нужно сделать это любым другим способом, воспользуйтесь одним из приведенных ниже решений.