具有不同输入值的for循环

时间:2016-02-11 07:13:44

标签: javascript

我需要编写一个for循环,如下面提到的方式,即:

var array = [1,2,3,4,5,6,7];

var startday=5
var endday=1

 for(var k=startday;k>endday;k++){

   }

我的输出就像:5,6,7,1

我已经尝试过代码,但价值就像5,6,7,8,9 .......

5 个答案:

答案 0 :(得分:2)

假设这是迭代一个带有变量start和end的数组。

  1. array
  2. 获取开始索引
  3. array
  4. 获取结束索引
  5. 如果小于start,则调整结尾,在这种情况下添加array.length
  6. 迭代新的开始和结束索引
  7. 调整索引,因为它可以使用余数运算符在array.length之外运行。
  8. var array = [1, 2, 3, 4, 5, 6, 7],
        startday = 5,
        endday = 1,
        k,
        start = array.indexOf(startday),
        end = array.indexOf(endday);
    
    if (end < start) {
        end += array.length;
    }
    for (var k = start; k <= end; k++ ){
        document.write(array[k % array.length] + '<br>');
    }

答案 1 :(得分:0)

您应该使用--k作为for的第三个参数(它会导致k变量递减)

var array = [1,2,3,4,5,6,7];
var startday=5;
var endday=1
for (var k=startday; k >= endday; --k)
{
}

答案 2 :(得分:0)

在你的循环中,打印这个数组[k]&#39;和&#39; if(k&gt; array.length){print 1 and break}&#39;

答案 3 :(得分:0)

是否必须是for循环? 怎么样:

var array = [1,2,3,4,5,6,7];
var startday = 5;
var endday = 1;
var k = startday;
while (k > endday){
    // print array[k-1]

    if (k == array.length){
        k = 1;
    } else {
        k++;
    }
}
while (k <= endday){
    // print array[k-1]

    k++;
}

我假设startday和endday引用数组索引。

答案 4 :(得分:0)

试试这个

<script src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
var array = [11,22,33,44,55,66,77];

var startday=55;
var endday=11;

var lastEl = array[array.length-1];
var index_startday =  $.inArray( startday, array );

 for(var count=index_startday; count <= array.length;count++){
    alert(array[count]);
    if(array[count] == endday){
        break;
    }
    if(array[count] == lastEl){
      count = -1;
      continue;
    }
   }
</script>