Подтвердить что ты не робот

Как пропустить первую итерацию $.each()?

У меня есть список JSON, который я хочу перебрать, но пропустите первую запись, например:

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

Любые идеи?

4b9b3361

Ответ 1

Достаточно ли это?

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

Ответ 2

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

или, возможно, более эффективно:

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

Ответ 3

Вы можете использовать старый добрый подход firstFlag:

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

Но вместо этого я бы рекомендовал сначала отфильтровать вашу коллекцию данных, чтобы удалить первый элемент с помощью селектора.

Ответ 4

Почему бы не использовать slice, чтобы удалить первый, а затем использовать $. каждый без каких-либо условий (это может увеличить производительность для большого набора массивов)

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

Ответ 5

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