0

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

        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 和 COLORS 对齐。

4

0 回答 0