jQuery从array + var创建新数组并使用新数组

时间:2015-09-23 15:08:15

标签: jquery arrays

我有一个数组和一个变量,我正在尝试构建一个新数组,然后使用该新数组。

我现有的数组和var看起来像这样

var RColor = '#007cc4';   
var stateHTML = {
    "US-VA": {"location": "Virginia"},
    "US-PA": {"location": "Pennsylvania"},
    "US-TN": {"location": "Tennessee"},
    "US-WV": {"location": "West Virginia"},
    "US-NV": {"location": "Nevada"},
    //"US-TX": {"location": "Texas"},
    "US-NH": {"location": "New Hampshire"},
    "US-NY": {"location": "New York"},
    "US-HI": {"location": "Hawaii"},
    "US-VT": {"location": "Vermont"},
    "US-NM": {"location": "New Mexico"},
    "US-ME": {"location": "Maine"},
    "US-OH": {"location": "Ohio"},
    "US-OK": {"location": "Oklahoma"},
    "US-ID": {"location": "Idaho"},     
};

我试图用来制作新数组的代码就像这样

var activeColors = [];
$.each(stateHTML, function(index, value){
    activeColors.push(index + ':' + RColor +',');
});

然后我试图在这里重用新数组

series: {
     regions: [{values: {
                    return:activeColors
                    },
                    attribute: 'fill'
                    }]
   },

如果我对区域值进行硬编码,那么它可以正常工作

series: {
     regions: [{values: {
                    "US-VA": RColor,
                    "US-PA": RColor,
                    "US-TN": RColor,
                    "US-WV": RColor,
                    "US-NV": RColor,
                    },
                    attribute: 'fill'
                    }]
   },

如何根据我的stateHTML和RColor创建新数组,然后使用上面那个有效的新数组?

您可以在此处查看完整的示例代码

http://jsfiddle.net/abennington/ymgkkuzL/223/

工作时,它只会为系列中指定的新activeColors数组中指定的状态着色:区域值。

1 个答案:

答案 0 :(得分:3)

您不希望activeColors成为数组,也不想将字符串推入其中。您希望它是 对象 ,并且您希望在循环中设置每个键/值对。

var activeColors = {};
$.each(stateHTML, function(index, value){
    activeColors[index] = RColor;
});

然后您可以使用它代替硬编码对象。

series: {
    regions: [{
        values: activeColors,
        attribute: 'fill'
    }]
}