我有一个数组和一个变量,我正在尝试构建一个新数组,然后使用该新数组。
我现有的数组和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数组中指定的状态着色:区域值。
答案 0 :(得分:3)
您不希望activeColors
成为数组,也不想将字符串推入其中。您希望它是 对象 ,并且您希望在循环中设置每个键/值对。
var activeColors = {};
$.each(stateHTML, function(index, value){
activeColors[index] = RColor;
});
然后您可以使用它代替硬编码对象。
series: {
regions: [{
values: activeColors,
attribute: 'fill'
}]
}