跳过“for each”循环中的第一个元素?

时间:2012-03-28 22:45:03

标签: arrays actionscript

我有一个名为segments的精灵数组,我想在每个循环中跳过segments的第一个元素。我现在正在这样做:

var first = true;
for each (var segment in this.segments)
{
    if(!first)
    {
        // do stuff
    }

    first == false;
}

有更好的方法吗?谢谢!

3 个答案:

答案 0 :(得分:5)

如果它的数组为什么不仅仅是:

for(var i:int = 1; i < this.segments.length; i++)
{

}

答案 1 :(得分:2)

这也可以通过“切片”来完成。 例如

for (var segment in this.segments.slice(1))
{
    
}

Array#slice 将复制没有第一个元素的数组。

答案 2 :(得分:0)

您可以使用Array.prototype.slice遍历数组的子集:

for each (var segment in this.segments.slice(1))
{
    // do stuff
}

这确实会复制数组,因此比使用基于索引的方法要慢(如d4rklit3建议):

for each (var i = 1; i < segments.length; i++)
{
    var segment = segments[i];
    // do stuff
}

但是您确实保存了一行代码,并且看起来更清晰(只要您了解切片在做什么)。