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



我有一个数组和一个变量,我试图建立一个新的数组,然后使用这个新的数组。

我现有的数组和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/

当工作时,它将只对在series:region值中指定的新activeColors数组中指定的状态进行着色。

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

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

那么你可以用它来代替硬编码的对象。

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

最新更新