在 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 数组作为参数传递。