我使用 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", " ", " ", " ", " ", " "],
}
}
}
渲染 map 的代码是这样的:
$(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,但我对它有了基本的了解。目前我收到“未定义不是函数”错误。实现这部分的正确方法是什么
var str = data.states[val][code];
var trim = str.replace(/(^,)|(,$)/g, "");
最佳答案
我假设有错误的行是 var trim = str.replace(/(^,)|(,$)/g, "");
。如果我假设正确那么这意味着 str
不是一个字符串,而是其他一些对象。
在这种情况下,您需要检查“如果它不是字符串,那么 str
是什么?”
一种检查方法是 alert(str)
看看会出现什么。将警报行直接放在有错误的行之前。
当然alert(str)
与 alert(data.states[val][code])
相同。您可以通过使用alert(JSON.stringify(data.states[val][code]))
来寻求帮助或alert(JSON.stringify(data.states[val]))
.
关于javascript - JvectorMap trim 数据输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28460994/