我需要编写一个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 .......
答案 0 :(得分:2)
假设这是迭代一个带有变量start和end的数组。
array
array
array.length
array.length
之外运行。
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>