javascript - 使用国家/地区代码作为数组/对象名称?范围界定问题?

标签 javascript jquery jvectormap

有人可以帮我解决这个问题吗,以加拿大为例:

var CA = {
    name: "Canada Name",
    iso: "CA",
    percentage: "23.4",
    color: getColor(23.4)
};

$(function() {

    $('#world-map').vectorMap({
        map: 'world_mill_en',
        .
        .
        onRegionTipShow: function(event, wrap, code) {
            wrap.html('hello ' + code); // working, outputs "hello CA"
            console.log(CA.name); // working, outputs "Canada Name"
            console.log(code.name); // not working - undefined
        },
        .
        .

如何使用“代码”来引用变量(在本例中为 CA)? 正如我看到代码输出一个字符串,但我无法将其转换为有效的形式

谢谢

最佳答案

您需要将您的 CA 对象进一步包装在另一个对象中,如下所示:

var langs = {
    CA: {
        name: "Canada Name", 
        iso: "CA", 
        percentage: "23.4", 
        color: getColor(23.4)
    }
}

然后您可以使用括号表示法访问langs 的属性。因此,假设您的示例中为 code = 'CA':

onRegionTipShow: function(event, wrap, code){
    wrap.html('hello ' + code);     // = 'hello CA'
    console.log(langs[code].name);  // = 'Canada Name'
},

关于javascript - 使用国家/地区代码作为数组/对象名称?范围界定问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869631/

相关文章:

javascript - 马尔兹帕诺 + ReactJS?

javascript - KnockoutJS - 根据第一个组合框中选择的值填充第二个组合框

javascript - Highcharts 样条线未显示

javascript - 使用 javascript 处理 JSON 数据和 JSON 对象数组

javascript - javascript中的弹出窗口并显示内容

javascript - 如何使用 Raphael Js 将图像放在圆圈内

javascript - Jvector Map 如何从标记添加和获取链接

javascript - HTML5 视频 - 如果当前时间等于设置时间则运行事件

javascript - JVector map 如何更改鼠标光标悬停在区域上时显示的工具提示的大小

javascript - Jvector map 不工作准备 IE8?