2009-09-08 12 views
19

मैं एक JSON सूची है कि मैं अधिक पुनरावृति करना चाहते हैं, लेकिन पहली प्रविष्टि को छोड़, इस प्रकार की तरह:

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

कोई भी विचार?

उत्तर

36

क्या यह पर्याप्त है?

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

शानदार (यह सरणियों के बड़े सेट के लिए अपने प्रदर्शन को बढ़ सकता है) धन्यवाद – 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

दोह - अच्छा पकड़ो। फिक्स्ड। –

2

क्यों slice का उपयोग नहीं कर पहले एक निकालें और फिर किसी भी हालत के बिना $.each उपयोग करने के लिए,

var collection = data.collection.slice(0 , 1); 
$.each(collection,function() { 
    DoStuff(); 
}); 
संबंधित मुद्दे