从字符串

时间:2016-07-15 09:52:37

标签: javascript google-visualization

我有一个javascript字符串,其中包含" arrayToDataTable"的所有数据。

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和#34的无效类型;

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

1 个答案:

答案 0 :(得分: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);
  }

将String计算为JavaScript表达式后,数组将连接到dataArray以形成新图表的数据数组。