【问题标题】:Appending data to Associative or dimensional Array将数据附加到关联或维度数组
【发布时间】:2014-01-05 18:26:46
【问题描述】:

我有一个填充城市选择的国家选择, 然后在特定城市周围添加半径。

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>");

        }

只有最后一项显示在警告框中。其他的则显示为未定义。

请帮忙。

迈克

【问题讨论】:

  • 您可以使用像地图这样的对象(没有排序的关联数组)

标签: javascript jquery arrays multidimensional-array associative-array


【解决方案1】:

JS中有关联数组。您只需这样做:

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

【讨论】:

    【解决方案2】:

    Javascript 的原生对象是键值对,允许您将它们视为映射,大致相当于关联数组。所以你上面的代码实际上是完全有效的javascript。

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

    然后您可以使用

    访问值
    set["country"] //"England"
    

    set.city //"London"
    

    【讨论】:

    • 您好,感谢您的回复。我更新了问题和脚本,我添加了一个新功能来提醒'set'中的所有值。但是它只显示国家。
    • 你不再有一个明确的问题。我不确定你在问什么。请用您寻求帮助的明确具体问题重新表述问题,而不是“代码不起作用”更具体的问题
    【解决方案3】:

    只要你声明:

    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
    

    【讨论】:

    • 如果要将它们用作对象,请不要将它们声明为数组。这误导到了极点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2021-03-20
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多