JvectorMap修剪数据输出

时间:2015-02-11 17:50:01

标签: javascript json trim jvectormap

我使用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,但我对它有基本的了解。目前我得到了#34; Undefined不是一个功能&#34;错误。实现这一部分的正确方法是什么

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

1 个答案:

答案 0 :(得分:0)

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

在这种情况下,您需要检查&#34;如果它不是字符串,那么str是什么?&#34;

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

当然alert(str)alert(data.states[val][code])相同。您可以使用alert(JSON.stringify(data.states[val][code]))alert(JSON.stringify(data.states[val]))找到帮助。