在 Javascript 的变量中使用 while() 语句?
Using a while() statement inside a variable in Javascript?
我一直在尝试使用 YouTube API 生成 Google 图表,方法是将 table 中的数据直接放入 Google 折线图中。但是在无法使用 while() 之后发现自己陷入了困境;变量内的语句。
当前生成图表的函数如图所示
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() 语句时它中断了并且 returns 一个无效的令牌错误:
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 语句是有效的,因为我试过控制台记录响应。
如何解决无法通过此方法将数据导入图表的问题,我可以使用什么绕过方法,或者是否有其他(正确的)方法来实现我所缺少的?
进入 table 的原始数据来自对 API 的 file_get_contents 请求,returns JSON 数据返回。
您应该在将数组传递给 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);
...
在最初的 post 中,while(){} 中的代码构造了一个类似数组的字符串。它在控制台中看起来不错,但您需要一个实际的 JS 数组作为参数传递。
我一直在尝试使用 YouTube API 生成 Google 图表,方法是将 table 中的数据直接放入 Google 折线图中。但是在无法使用 while() 之后发现自己陷入了困境;变量内的语句。
当前生成图表的函数如图所示
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() 语句时它中断了并且 returns 一个无效的令牌错误:
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 语句是有效的,因为我试过控制台记录响应。
如何解决无法通过此方法将数据导入图表的问题,我可以使用什么绕过方法,或者是否有其他(正确的)方法来实现我所缺少的?
进入 table 的原始数据来自对 API 的 file_get_contents 请求,returns JSON 数据返回。
您应该在将数组传递给 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);
...
在最初的 post 中,while(){} 中的代码构造了一个类似数组的字符串。它在控制台中看起来不错,但您需要一个实际的 JS 数组作为参数传递。