每次单击,在数组中递增一个索引

时间:2017-09-24 08:25:15

标签: javascript jquery

我只是开始使用JavaScript而我无法弄清楚如何在每次点击时将索引选择器增加1。

以下代码给出了索引6,但我希望每次单击都会增加此索引:

ddpClient.call("livechat:registerGuest",[{"token":authToken,"name":"test1","email":"test2@gmail.com","department":department._id},25],function(err, info){

});

这是完整的代码:

var nextCompanyLabel = 6;

label: label[nextCompanyLabel++],

所有帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

每次点击都会将nextCompanyLabel重新初始化为6,因此增量不会成立。将初始化语句移到事件处理函数之外。

var nextCompanyLabel = 6;  //reinitializing nextCompanyLabel, remove this line.
  var newDataset = {
    label: label[nextCompanyLabel++],

答案 1 :(得分:2)

您每次都会得到答案6,因为每次用户点击时,变量var nextCompanyLabel都会明确赋予值6。 即,



var nextCompanyLabel = 6;




稍后当你递增它时,你使用的是后缀增量,因此你的值总是为6。

在函数外面声明var nextCompanyLabel = 6; <或者>将其设为静态。

这可以解决您的问题。

答案 2 :(得分:1)

您可以尝试在点击功能之外初始化nextCompanyLable变量,如下所示:

var nextCompanyLabel = 6;
$('#addDataset').click(function() {
  var background = randomColor(0.5);
  var newDataset = {
    label: label[nextCompanyLabel++],
    borderColor: background,
    backgroundColor: background,
    pointBorderColor: background,
    pointBackgroundColor: background,
    pointBorderWidth: 1,
    fill: false,
    data: [],
  };

  for (var index = 0; index < config.data.labels.length; ++index) {
    newDataset.data.push(randomScalingFactor());
  }

  config.data.datasets.push(newDataset);
  window.myLine.update();
});

答案 3 :(得分:0)

假设您的标签数组要在代码之前的某处定义,您应该在回调函数之外初始化 nextCompanyLabel ,在每次点击事件中更新其值,使得索引不会#39; t走出数组的边界(例如使用modulo&#34;%&#34;运算符):

&#13;
&#13;
var nextCompanyLabel = 6;

$('#addDataset').click(function() {
  var background = randomColor(0.5);
  nextCompanyLabel = (nextCompanyLabel + 1) % label.length;
  var newDataset = {
    label: label[nextCompanyLabel],
    borderColor: background,
    backgroundColor: background,
    pointBorderColor: background,
    pointBackgroundColor: background,
    pointBorderWidth: 1,
    fill: false,
    data: [],
  };

  for (var index = 0; index < config.data.labels.length; ++index) {
    newDataset.data.push(randomScalingFactor());
  }

  config.data.datasets.push(newDataset);
  window.myLine.update();
});
&#13;
&#13;
&#13;