假设我有一个包含5个字符串的数组.如何在索引3处启动for循环并绕过并在索引2处结束?让我举个例子.
var myArry = ["cool", "gnarly", "rad", "farout", "awesome"];
Run Code Online (Sandbox Code Playgroud)
想从索引3("farout")循环开始到数组结尾("awesome")然后继续在索引0到索引2循环.基本上在某个点(索引0除外)开始一个数组并仍然每个数组中的元素.
Jam*_*ton 18
一种方法是使用正常的索引遍历数组,并使用模数运算符和偏移量来获取指向数组中正确位置的指针:
var myArry = ["cool", "gnarly", "rad", "farout", "awesome"];
var offset = 3;
for( var i=0; i < myArry.length; i++) {
var pointer = (i + offset) % myArry.length;
console.log(myArry[pointer]);
}
Run Code Online (Sandbox Code Playgroud)
所以你的循环是每个元素的标准循环.您获取当前位置加上偏移量,并从中除以数组大小得到的余数.直到你到达数组的末尾,它将与i + offset相同.当你到达数组的末尾时,余数将为零,然后从那里开始.
这就是你需要的:
var start = 3;
for(var z=0;z<myArry.length;++z) {
var idx = (z+start) % myArry.length;
console.log(myArry[idx]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7960 次 |
| 最近记录: |