如何遍历从不同索引开始的数组,同时仍然遍历整个数组?

Dragonore

假设我有一个由5个字符串组成的数组。如何在索引3处开始for循环,然后在索引2处结束?让我举个例子吧。

var myArry = ["cool", "gnarly", "rad", "farout", "awesome"];

想从索引3(“ farout”)开始循环到数组的末尾(“ awesome”),然后继续从索引0到索引2循环。基本上从某个点(索引0除外)开始数组,并且仍然命中每一个数组中的元素。

詹姆斯·沃丁顿

一种方法是像往常一样使用索引循环遍历数组,并使用带有偏移量的模运算符,以获得指向数组中正确位置的指针:

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]);
}

因此,您的循环是贯穿每个元素的标准循环。您将当前位置加上偏移量,然后从中得到余数除以数组大小。直到您到达数组的末尾为止,它将与i + offset相同。当您到达数组的末尾时,余数将为零,然后从那里开始。

这是一个小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章