将键值对添加到对象

时间:2013-10-27 19:12:40

标签: javascript

我有一个创建键值对的循环;其中一个语句做我想要的是在循环期间创建多个对。我很困惑为什么其他声明不起作用。有效的代码:

        chart[2][ITEMNAME] = new Array("Gonzo", "Kermit", "Piggy", "Rowlf", "Big Bird", "Elmo");
        var hashmap=[];////Create hashmap and dump array values
        for (var each in chart){
            hashmap[each]={};
            for (var eachITEM in chart[each][ITEMNAME]){
                hashmap[each][chart[each][ITEMNAME][eachITEM]] = chart[each][DATA][eachITEM];
            }
        }

不起作用的代码 - 我所做的只是用另一个字符串替换[chart [each] [ITEMNAME] [eachITEM]]。我注意到的行为是它将所有值替换为最后一个元素,而不是将对添加到对象。

        chart[2][ITEMNAME] = new Array("Gonzo", "Kermit", "Piggy", "Rowlf", "Big Bird", "Elmo");
        var hashmap=[];////Create hashmap and dump array values
        for (var each in chart){
            hashmap[each]={};
            for (var eachITEM in chart[each][ITEMNAME]){
                hashmap[each]["name"] = chart[each][DATA][eachITEM];
                // hashmap[each][chart[each][ITEMNAME][eachITEM]] = chart[each][DATA][eachITEM];
            }
        }

这是我的完整对象数组中的一个对象:

    var chart = new Array();

    chart[0] = new Array();
    chart[0][LEGEND] = "Widget Production";
    chart[0][ITEMNAME] = new Array("Big Widgets", "Little Widgets", "Medium Widgets", "Microwidgets");
    chart[0][DATA] = new Array(30,50,100,25);
    chart[0][COLORS] = new Array("lightblue","orange","red","lightgreen");

我要做的是在ITEMENAME中对元素进行alphebetize,同时保持数组与DATA&颜色。

0 个答案:

没有答案