很简单的一个问题,但真的把我卡住了,兄弟姐妹们快来捡分。
做一个Highcharts的图表绘制,本来从数据库中查询赋值的,无奈不出来结果,最后检查到数组这一步。
var arrs = [14.0, 12.0, 9.0, 14.0, 14.0];
optionsBV.series[0].data = arrs;
上面代码表示图表控件中添加显示的5个Y值,这种数组方式图表能够正常显示。
而我是从数据库中查询出来的,因此需要自己构造数组,传递过来的是我构造的字符串,如下:
var receivedStr = "14.0&12.0&9.0&14.0&14.0";
var values_A = receivedStr.split("&");
optionsBV.series[0].data = values_A;
上面三句代码是对查询返回结果转换成相应的数组,数组alert(values_A)和前面alert(arrs)输出都是一样的,但values_A赋给optionsBV.series[0].data,图表确不能显示。
而测试下面的代码,
var values_B = new Array();
for (var i = 0; i < 5; i++) {
values_B.push(14.0); // 所有赋统一常量测试正常;
//values_B.push(values_A[i]); // split的数组转存结果也不显示
}
optionsBV.series[0].data = values_B;
这种方式又能正常显示图表,因此我觉得一定是receivedStr.split("&");返回的结果数组这种方式不正确,大家帮我分析一下,我到底哪里没弄对呢?谢谢。
split返回的是字符串数组,而你这里需要的是数字数组。
我猜是你的数组元素不是数字...
receivedStr.split("&");之后数组是字符串,需要类型转换