2009-09-08 33 views
19

我有,我想遍歷一個JSON名單,但跳過第一個條目,像這樣的:

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

任何想法?

回答

36

這樣好嗎?

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

輝煌,感謝 – mwjackson 2009-09-08 22:27:12

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 2009-09-08 22:28:10

+0

我主要喜歡片(1)的使用。非常有效。 – thepriebe 2013-02-06 23:31:41

2

您可以使用好老firstFlag方法:

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

但是,相反,我建議您首先過濾您的數據收集以使用選擇器刪除第一個項目。

+0

Doh - 好。固定。 – 2009-09-08 22:29:35

2

爲什麼不使用slice刪除第一個,然後使用$.each沒有任何條件(這可能會增加你對大組陣列的性能)

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