2009-09-08 6 views
19

は私が反復処理したいJSONリストを持っているが、これと同様に、最初のエントリをスキップ:

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

任意のアイデア?

答えて

36

これで十分ですか?

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

(それが配列の大規模なセットのために、あなたのパフォーマンスを向上させる可能性がある)最初のものを削除してから、無条件$.eachを使用するsliceを使用していないブリリアント、感謝 – mwjackson

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

または、おそらくより効率的に:

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

私は好きでも、そのわずかかかわらず、その読みにくく、受け入れられたソリューションです。 – mkoryak

+0

私は主にスライス(1)の使用が好きです。非常に効率的です。 – thepriebe

2

あなたは古き良きfirstFlagアプローチを使用することができます

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

をしかし、その代わりに、私はそれをお勧めします最初にセレクタを使用して最初のアイテムを削除するためにデータコレクションをフィルタリングします。

+0

Doh - 良いキャッチ。一定。 –

2

なぜ

var collection = data.collection.slice(0 , 1); 
$.each(collection,function() { 
    DoStuff(); 
}); 
関連する問題