2013-05-13 90 views
2

我正在使用Google Charts並一直收到錯誤:軸#0的數據列不能是字符串類型。我相信這是因爲在我傳入的數組中,存在應該有數字值的字符串值。我的數組是n列8行。第一行的所有值都應該是數字,因爲第一列中的所有值應該是字符串和其餘數字。我抓取查詢字符串中的所有值,當我將它們分開時,它們以字符串形式出現,我相信。Google Chart:軸#0的數據列不能是字符串類型的錯誤

這裏是我的網址查詢字符串:1=Day,04/01/2013,04/08/2013,04/15/2013,04/22/2013,04/29/2013,05/06/2013&2=Monday,100,100,100,100,100,100&3=Tuesday,100,100,100,100,100,100&4=Wednesday,100,100,100,100,100,100&5=Thursday,100,100,100,100,100,100&6=Friday,100,100,100,100,100,100&7=Saturday,100,100,100,100,100,100&8=Sunday,100,100,100,100,100,100

下面是我的javascript:

function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

var row1 = getUrlVars()["1"]; 
var row2 = getUrlVars()["2"]; 
var row3 = getUrlVars()["3"]; 
var row4 = getUrlVars()["4"]; 
var row5 = getUrlVars()["5"]; 
var row6 = getUrlVars()["6"]; 
var row7 = getUrlVars()["7"]; 
var row8 = getUrlVars()["8"]; 

var row1x=row1.split(","); 
var row2x=row2.split(","); 
var row3x=row3.split(","); 
var row4x=row4.split(","); 
var row5x=row5.split(","); 
var row6x=row6.split(","); 
var row7x=row7.split(","); 
var row8x=row8.split(","); 

var items = [row1x, row2x, row3x,row4x,row5x,row6x,row7x,row8x]; 



     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = google.visualization.arrayToDataTable(items); 

     var options = { 
      title: 'Members AM Open Rate' 
     }; 

     var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 
     } 

如何迫使所有的值不是第一行或列中的數字,而不是字符串中的任何想法?

回答

0

Any thought on how to force all values not in the first row or column to numbers instead of strings?

使用單獨的陣列:

var headers = [row1x]; 
var items = [row2x, row3x, row4x, row5x, row6x, row7x, row8x]; 

和字符串化並解析陣列數字字符串轉換爲數字:

/* Take the string, create an array, create a string, replace the quotes, return array */ 
var row3x = JSON.parse(JSON.stringify("3=Tuesday,100,100,100,100,100".split(",")).replace(/"(\d+)"/g,"$1")) 

然後兩個陣列的concat:

var data = google.visualization.arrayToDataTable(header.concat(items)); 
相關問題