如何跳过$ .each()的第一次迭代?

时间:2009-09-08 22:18:02

标签: jquery

我有一个我想要迭代的JSON列表,但跳过第一个条目,就像这样:

$.each(
    data.collection,
    function() { DoStuffButOnlyIfNotTheFirstOne(); }
);

有什么想法吗?

5 个答案:

答案 0 :(得分:43)

这还不错吗?

$.each(data.collection.slice(1), DoStuff);

答案 1 :(得分:15)

$.each(
    data.collection,
    function(i) {
        if(i)
            DoStuffButOnlyIfNotTheFirstOne();
    }
);

或者,可能更有效率:

$.each(
    data.collection.slice(1),
    function() {
        DoStuff();
    }
);

答案 2 :(得分:2)

你可以使用旧的firstFlag方法:

var firstFlag = true;
$.each(
data.collection,
  function() { 
    if(!firstFlag) DoStuffButOnlyIfNotTheFirstOne(); 
    firstFlag = false;
}

但相反,我建议您先过滤数据集,然后使用选择器删除第一项。

答案 3 :(得分:2)

为什么不使用checkout the received删除第一个,然后在没有任何条件的情况下使用slice(这可能会提高大型数组的性能)

var collection = data.collection.slice(0 , 1);
$.each(collection,function() {
   DoStuff();
});

答案 4 :(得分:0)

$.each(
    data.collection,
    function(i) { if (i>0) DoStuffButOnlyIfNotTheFirstOne(); }
);