JvectorMap Trim 数据输出

JvectorMap Trim data output

我正在使用 JvectorMap 按州映射运营商以便于编辑 json 数据,如下所示:

 {
"states": {
    "2015": {
        "US-AK": [" Aenta", " Assurant", "     ", "         ", "           ", "     ", "       "],
        "US-AL": [" Aenta", " Assurant", "     ", "         ", " Goden Rule", "     ", " Humana"],
        "US-AR": [" Aenta", " Assurant", "     ", "         ", "           ", "     ", "       "],
        "US-AZ": [" Aenta", "         ", "     ", "         ", " Goden Rule", "     ", " Humana"],
        "US-CA": [" Aenta", " Assurant", "     ", "         ", "           ", "     ", "       "],
          }
        }
    }

渲染地图的代码是这样的:

$(function(){
$.getJSON('../js/medicalOff.json', function(data){
    var val = 2015;
        statesValues = jvm.values.apply({}, jvm.values(data.states));
  $('#map').vectorMap({
        map: 'us_merc_en',
        backgroundColor: '#ffffff',
        regionStyle: {
            initial:{
         fill: '#87c9b4',   
        },
            hover:{
             fill:'#2e8f70',   
            },
        },
onRegionTipShow: function(e, label, code) {
var str =  data.states[val][code];
var trim = str.replace(/(^,)|(,$)/g, "");
 label.html('<b>' + label.html() + '</b>' + '<br> ' + trim);
},
  });
});
});

在我添加 var str = data.states[val][code]; var trim = str.replace(/(^,)|(,$)/g, ""); 之前,数据的结果类似于 Texas: ,,,Assurant,,,Humana。现在我不太擅长JavaScript,但我对它有一个基本的了解。目前我收到 "Undefined is not a function" 错误。实现这部分的正确方法是什么

var str =  data.states[val][code];
var trim = str.replace(/(^,)|(,$)/g, "");

我假设有错误的行是 var trim = str.replace(/(^,)|(,$)/g, "");。如果我假设正确,那意味着 str 不是字符串,而是其他对象。

在这种情况下,您需要检查"If it's not a string, what is str?"

一种检查方法是 alert(str) 并查看弹出的内容。将警告行直接放在有错误的行之前。

当然alert(str)alert(data.states[val][code])是一样的。您可以使用 alert(JSON.stringify(data.states[val][code]))alert(JSON.stringify(data.states[val])).

寻求帮助