Добавление данных в ассоциативный или размерный массив

0

У меня есть выбор страны, который заполняет выбор города, затем добавляется радиус, окружающий определенный город.

var countrySet = new Array;
var citySet = new Array;
var radiusSet = new Array;
var set;


            function appendCountry(){                   

                if($.inArray($("#businessCountryTarget option:selected").text(),countrySet) === -1) {                           

                $("#businessDisplayCountryInfo").append($("#businessCountryTarget option:selected").text() + "<br>");           

                       countrySet.push($("#businessCountryTarget option:selected").text());
                    set = { country: $("#businessCountryTarget option:selected").text()};

        }

            }



            function appendCity(){                  

                if($.inArray($("#businessCityTarget option:selected").text(),citySet) === -1){                          

                        $("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>"); 

                       $("#radiusContainer").append($("#businessCityRadius option:selected").text() + "<br>"); 
                 citySet.push($("#businessCityTarget option:selected").text(),+'-'+$("#businessCityRadius option:selected").text());    

                set = {city: $("#businessCityTarget option:selected").text()};
                radius = $("#businessCityRadius option:selected").text();
                set = {radius: $("#businessCityRadius option:selected").text()};

                }       

            }


    function SaveLocations(){
            alert(set['country'] + ' - '+ set['city'] +'-'+ set['radius'] +"<br>");

        }

В поле предупреждения отображается только последний элемент. другие выглядят как неопределенные.

любая помощь пожалуйста.

Майк

  • 0
    Вы можете использовать объект, такой как карта (ассоциативный массив без упорядочения)
Теги:
arrays
multidimensional-array
associative-array

3 ответа

1

Собственные объекты Javascript представляют собой пары ключевых значений, которые позволяют рассматривать их как карты, что примерно эквивалентно ассоциативным массивам. Таким образом, ваш код, приведенный выше, на самом деле является полностью допустимым javascript.

var set;
set = { country: "England", city: "London", radius: "10 miles" };

вы можете получить доступ к значениям с помощью

set["country"] //"England"

или

set.city //"London"
  • 0
    Привет, спасибо за ваш ответ. Я обновил вопрос и сценарий, я добавил новую функцию для оповещения всех значений в «set». Однако там отображается только страна.
  • 0
    у вас больше нет ясного вопроса. Я не уверен, что вы спрашиваете. Пожалуйста, перефразируйте вопрос с ясной конкретной проблемой, с которой вы просите помощи, что-то более конкретное, чем «код не работает»
0

В JS есть ассоциативные массивы. Вы просто сделали бы:

var myarray = { "key": "Value" }
0

пока вы заявляете:

var x = []; // you actually don't need new Array()

вы можете рассматривать x как ассоциативный массив

x.a = 10;

Это эквивалентно

var x = {a: 10};

Так...

x.a == 10; // true

x['a'] == 10; // true
  • 1
    Не объявляйте вещи как массивы, если вы собираетесь использовать их как объекты. Это вводит в заблуждение до крайности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню