我一直在尝试使用YouTube API生成Google图表,方法是将表格中的数据直接放入Google折线图中。但是在不能使用一段时间之后发现自己陷入了困境();变量内的语句。
生成图表的当前功能如图所示
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Day', 'Views', 'Subscribers'],
['2008', 1530, 540],
]);
console.log(data);
var options = {
title: 'Channel Performance',
curveType: 'function',
legend: { position: 'bottom' }
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
当我尝试输入while()语句时,它看起来像这样:
var data = google.visualization.arrayToDataTable([
['Day', 'Views', 'Subscribers'],
while (mywhilestatement) { dosomething }
['2008', 1530, 540],
]);
但是当我尝试插入我的while()语句时,它会中断并返回一个无效的令牌错误:
var eqno = 1;
var day = $(".danalytics tr").eq(eqno).children().eq(0).text();
var views = parseInt($(".danalytics tr").eq(eqno).children().eq(1).text());
var subs = parseInt($(".danalytics tr").eq(eqno).children().eq(2).text());
while (eqno < rowcount) {
"['" + $(".danalytics tr").eq(eqno).children().eq(0).text() + "', " + parseInt($(".danalytics tr").eq(eqno).children().eq(1).text()) + ", " + parseInt($(".danalytics tr").eq(eqno).children().eq(2).text()) + "],";
eqno++;
}
我知道while语句是有效的,因为我已经尝试过控制台记录响应。
如何解决在此方法中无法将数据导入图表的问题,我可以使用哪种旁路,或者是否有一种不同的(正确的)方法来执行此操作我不知道?
进入该表的原始数据来自对API的file_get_contents请求,该API返回JSON数据。
答案 0 :(得分:0)
你应该在将数组传递给arrayToDataTable()之前构造它。 我的意思是这样的:
var dataArray = [
['Day', 'Views', 'Subscribers']
];
var eqno = 1;
while (eqno < rowcount) {
var day = $(".danalytics tr").eq(eqno).children().eq(0).text();
var views = parseInt($(".danalytics tr").eq(eqno).children().eq(1).text());
var subs = parseInt($(".danalytics tr").eq(eqno).children().eq(2).text());
dataArray.push([day, views, subs]);
eqno++;
}
dataArray.push(['2008', 1530, 540]);
var data = google.visualization.arrayToDataTable(dataArray);
...
在原始帖子中,while(){}中的代码构造了一个类似数组的字符串。它在控制台中看起来不错,但你需要一个实际的JS数组作为参数传递。