假设我有一个集合 [1,2,3,4] 我想从第一个元素迭代到最后一个元素,然后返回到第一个元素。所以它应该是 1,2,3,4,1,2,3,4,1,2.... 直到某件事为真。
目前我在想
while(IsSomethingTrue)
{
for(var i=0;i<Myarr.length;i++)
{
//do-something
if(i==(Myarr.length-1))
{
i=0; //setting it back to first index
}
}
}
我知道这是一个基本问题,上面是我可以实现目标的一种方法,但想知道是否有更好的方法,比如沿着循环列表的数据结构或 javascript 中的任何循环方法可以继续迭代直到数组的末尾,重新从头开始。
对于那些我需要这个的人来说:我正在尝试用 Javascript 可视化用餐哲学家并且需要这种行为发生。
最佳答案
虽然性能会降低,但如果您只是想要更短的代码,并且您不介意改变数组,您可以这样做:
while(IsSomethingTrue)
{
var item = Myarr[0];
// do something with item
Myarr.push(Myarr.shift());
}
再次明确一点,肯定会对性能产生一些影响。只是想我会展示它的可能性。
如果您不想改变原始数组,您也可以在进入 while
循环之前使用 .slice()
浅克隆数组。
关于javascript - 在javascript中使用什么数据结构或迭代方法来获得循环列表行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16498033/