跳过基于索引的循环中的某个步骤

时间:2018-03-23 08:45:35

标签: javascript for-loop

for (i=1; i<101; i=i+1){
    console.log(i)
}

我使这个循环从1到100计数,我需要的是每10个数字将添加值从i ++更改为i = i + 5。

示例:

1 2 3 4 5 6 7 8 9 (skip) 15 16 17 18 19 20 21 22 23 (skip) 29...

5 个答案:

答案 0 :(得分:2)

如果值超过某个限制,您可以使用额外的5添加检查和增量。

基本上你想要这个结果

  1   2   3   4   5   6   7   8   9
 15  16  17  18  19  20  21  22  23
 29  30  31  32  33  34  35  36  37
 43  44  45  46  47  48  49  50  51
 57  58  59  60  61  62  63  64  65
 71  72  73  74  75  76  77  78  79
 85  86  87  88  89  90  91  92  93
 99 100

以及在第一行末尾看到的内容,9的值是一个固定值,列中的每个下一个值都是一个值,它将上面一行的值加14。

你需要通过减去9来消除起始值以获得没有偏移的标准化值,你需要用14检查模数,如果模数是模数,则只需要加5的值零。

这意味着仅使用9233752,...等值,您需要添加5的值

&#13;
&#13;
var result = [],
    i;

for (i = 1; i < 101; i += 1 + 5 * !((i - 9) % 14)) {
    result.push(i);
}

console.log(result.join(' '));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您似乎希望在每5之后跳过9步骤,

&#13;
&#13;
var maxValue = 101;
var stepsToSkip = 5;
var stepsToSkipAfter = 9;
for (var i = 1; i < maxValue; i = i + stepsToSkipAfter) 
{
   for( var j = i; j < i + stepsToSkipAfter && j < maxValue; j++ )
   {
       console.log(j);
   }   
   i = i + stepsToSkip;
}
&#13;
&#13;
&#13;

注意

  • SO的控制台输出可能无法显示所有值,因此请查看开发人员工具&#39;浏览器的控制台。

答案 2 :(得分:0)

根据条件增加值。

&#13;
&#13;
var res = [];

// use variable `j` for counting and
// calculate increment value based on that

// on every 10th element you need to skip next 5 elements
// so use j for counting and based on the remainder 
// increment with 6 or 1 and while skipping increment the counter as well
for (var i = 1, j = 1; i < 101; j++, i += j % 10 ? 1 : (j++, 6)) {
  res.push(i)
}

console.log(res.join(', '));
&#13;
&#13;
&#13;

答案 3 :(得分:0)

做一些数学运算并查看你的序列,很明显我们需要在i = 14n+10时跳过。你可以把它放在for循环的步骤部分:

for (i = 1; i < 101; i = i + ((i + 5) % 14 == 0 ? 6 : 1)){
    console.log(i)
}

答案 4 :(得分:0)

var j = 0;
for (i = 1; i <= 100; i++) {
  if (j === 9) {
    j = 0;
    i += 5;
  } else {
    console.log(i);
    j++;
  }
}