如何在javascript中的push()之后使用shift()?

时间:2017-11-11 18:35:42

标签: javascript jquery pagination

所以我从我当前的代码开始

var lineChartCanvas1 = $("#lineChart1").get(0).getContext("2d");
var lineChart1 = new Chart(lineChartCanvas1);

var x = [];
for (var i=0; i<data.length; i++){
  x.push(data[i]['Timestamp'])
}

var y1 = [];
for (var j=0; j<data.length; j++){
  y1.push(data[j]['TotalStudent'])
}

var lineChartData1 = {
  labels: x,
  datasets: [
    {
      fillColor: "rgba(210, 214, 222, 1)",
      strokeColor: "rgba(210, 214, 222, 1)",
      pointColor: "rgba(210, 214, 222, 1)",
      pointStrokeColor: "#c1c7d1",
      pointHighlightFill: "#fff",
      pointHighlightStroke: "rgba(220,220,220,1)",
      data: y1
    },]};

var lineChartOptions = ...

lineChart1.Line(lineChartData1, lineChartOptions);

这是表格形式的假设数据

Timestamp | TotalStudent
   123    |     456
   789    |     321
   451    |     100
   ...
   ...
   ...

目前使用此代码我可以绘制折线图。 然后我想到在折线图上添加一个分页但是找不到任何一个例子。

经过一些谷歌搜索,我找到了shift()函数,我想这样写它

var x = [];
for (var i=0; i<data.length; i++){
  x.push(data[i]['Timestamp'])
  x.shift(data[j]['Timestamp'])
}

我认为它会自动删除第一个元素并继续在后面添加下一个元素但这实际上是一个灾难。

它没有在x轴上显示任何时间戳标签。

我的问题是,是否可以做这样的事情?在同一函数中使用shift()之后的push。这就像模仿分页风格,但只有在用户点击refresh page或其他内容时才会触发。

当然,它对用户产生了非常糟糕的影响,因为刷新页面后他们无法访问早期数据。

现在,我还想在for循环之上添加另一个data.length循环,但无法弄清楚我应该为循环使用哪个变量

如果有人对分页有任何建议,而不是使用shift()并添加另一个for循环,我真的很想知道。

感谢您的帮助和建议。

0 个答案:

没有答案