2016-07-15 75 views
1

我有一个包含“arrayToDataTable”所有数据的JavaScript字符串。从字符串创建Google图表

var pieData = "['Red', 3], ['Blue', 6] , ['Green', 8]"; 

我的饼图:

function drawPieChart() { 
    var data = google.visualization.arrayToDataTable([ 
    ['Team', 'Votes'], 
    pieData 
    ]); 

    var options = {   
     sliceVisibilityThreshold: 0, 
     width: 620, 
     height: 300, 
    }; 

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

当运行该函数,下面的误差呈现 “无效类型0行”。

是否有一些简单的方法使字符串pieData可用于arrayToDataTable?

+0

请提供您在jsfiddle中的工作... –

回答

1

其中一个解决方案是使用eval()来评估字符串中的表达式为JavaScript代码。有关此功能的更多信息,请参阅here

function drawPieChart() { 
    var pieData = "['Red', 3], ['Blue', 6] , ['Green', 8]"; 
    var dataArray = [ 
     ['Team', 'Votes']   
    ]; 

    var newDataArray = dataArray.concat(eval("[" + pieData + "]")); 
    var data = google.visualization.arrayToDataTable(newDataArray); 

    var options = {   
     sliceVisibilityThreshold: 0, 
     width: 620, 
     height: 300, 
    }; 

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

一旦字符串被作为JavaScript表达式阵列被连接成的dataArray以形成用于新的图表的数据阵列进行评价。

+0

推荐使用[JSON.parse()与eval()](http://stackoverflow.com/q/1843343/5090771) – WhiteHat