在循环结束之前使用for循环的每个值

时间:2018-01-26 01:37:35

标签: javascript html for-loop setinterval

我有一个使用for循环获取值的函数,并将它们放入1个变量中。这个变量被卡在一个表格中,然后提交它。但问题是for循环将在输入和提交值时完成循环。因此,每当我测试它时,变量“value”= 9999.任何人都可以告诉我如何在每次函数循环时向变量添加1?提前谢谢。

function myFunction() {

 var value1;
 var value2;
 var value3;
 var value4;
 var value;

 for (value1 = 0; value1 < 10; value1++) {
  for (value2 = 0; value2 < 10; value2++) {
   for (value3 = 0; value3 < 10; value3++) {
    for (value4 = 0; value4 < 10; value4++) {
     value = value1.toString() + value2.toString() + value3.toString() + value4.toString() + '@2018';
     document.getElementById('pswd').value = value;
     document.getElementById('uid').value = 'test';
     document.getElementById('commentForm').submit();
    }
   }
  }
 }
}

var loop = setInterval(function() {
 myFunction(); 
}, 2000);

1 个答案:

答案 0 :(得分:1)

如果我正确地阅读了您的问题,您希望每次调用间隔回调时该数字会增加一个?您可以通过跟踪函数外部的value来完成此操作,并在每次调用回调时执行一次增量。但是,您使用4个变量基本上从0到9999计数。您可以通过使用一个变量来递增来简化这一过程。然后你可以用零填充它。这看起来像这样。

var value = 0;

function myFunction() {
    var pswd = value.toString().padStart(4, 0) + '@2018';
    document.getElementById('pswd').value = pswd;
    document.getElementById('uid').value = 'test';
    document.getElementById('commentForm').submit();

    value++;
    if(value > 9999) {
        value = 0;
    }
}

var loop = setInterval(myFunction, 2000);

如果您无法使用padStart,则可以使用slice。您可以使用以下内容替换该行。

var pswd = ('0000' + value).slice(-4) + '@2018';