1

我想使用谷歌 drawVisualization API。例子:

 var data = new google.visualization.DataTable();
  data.addColumn('string');
  data.addColumn('number');
  data.addRows([
    ['a', 14],
    ['b', 47],
    ['c', 80],
    ['d', 55],
    ['e', 16],
    ['f', 90],
    ['g', 29],
    ['h', 23],
    ['i', 58],
    ['j', 48]
  ]);

我的版本通过其他 google api 获取元素,然后加入它们,然后将变量放在 and 之间([])就像示例中一样。

var outputGraph = [];

for (var i = 0, entry; entry = entries[i]; ++i) {

var asd = [
entry.getValueOf('ga:pageTitle'),
entry.getValueOf('ga:pageviews')
].join("',");
outputGraph.push(" ['" + asd + "]");
//get the 2 elements and join them to be like ['asd', 2], 

}
// this is fine, the outputgraph is like ['asd', 2], ['asd', 2], ['asd', 2] as seen in the example

var outputGraphFine = ("(["+outputGraph+"])");
// i suggest this is which fails the script.

var data = new google.visualization.DataTable();
 data.addColumn('string', 'Task');
 data.addColumn('number', 'Hours per Day');
 data.addRows = outputGraphFine;

但它不起作用。为什么?

4

1 回答 1

2

两个建议。

1 - 根据文档addRows()被这样调用:

data.addRows([
  ['Work', 11],
  ['Eat', 2],
  ['Commute', 2],
  ['Watch TV', 2],
  ['Sleep', {v:7, f:'7.000'}]
]);

so data.addRows = outputGraphFine;一开始是错误的。

2 -outputGraphFine是一个字符串,addRows()需要一个对象。要将存储在变量中的字符串转换为对象,您需要告诉 Javascript 在表达式解析模式下对其进行解释(换句话说,将其评估为代码):

data.addRows(eval(outputGraphFine));

希望有帮助。

于 2010-04-25T14:19:08.180 回答