दिलचस्प पोस्ट
उसी क्लिकदृश्य में किसी अन्य क्लिक करने योग्य स्प्रैन्स को प्रभावित किए बिना दबाए जाने के बाद एकल क्लिक करने योग्यस्पैन के टेक्स्ट का रंग बदलें सी पॉइंटर्स: निश्चित आकार की एक सरणी की ओर इशारा करते हैं अपने शाब्दिक नाम से एक वर्ग को इंस्टाइएट करें HTTP शीर्षलेख के लिए मुझे किस एन्कोडिंग का उपयोग करना चाहिए? Jquery या javascript वाले ऑब्जेक्ट की सरणी कैसे सॉर्ट करें आप Windows कमांड लाइन से एक व्यवस्थापक के रूप में एक आदेश कैसे चला सकते हैं? क्या यह सिस्टम बार छिपाना संभव है? जावास्क्रिप्ट पायथन के ज़िप फ़ंक्शन के बराबर है प्रोसेस एंड कॉन्स ऑफ एक्सेस डेटा प्रोजेक्ट (एमएस एक्सेस फ्रंट एंड एसक्यूएल सर्वर बैकेंड) मैं अपने WPF- अनुप्रयोग में एक पृष्ठ के लिए मोडल संवाद कैसे करूं? अनुकरण कैसे करें "जारी रखने के लिए कोई भी कुंजी दबाएं?" जावा में प्रोग्राम विंडो के एक्स और वाई कैसे प्राप्त करें? जैक्सन का उपयोग करके JSON स्ट्रिंग को सुंदर प्रिंट JSON आउटपुट में कनवर्ट करें मैं प्रोग्राम को एक DLL या EXE फ़ाइल का संस्करण कैसे प्राप्त करूं? स्विफ्ट से ऑब्जेक्टिव-सी # डीफ़ाईन का उपयोग कैसे करें

कैसे underscore.js में _.each फ़ंक्शन को तोड़ना

मैं underscore.js _.each() विधि के पुनरावृत्तियों को रोकने के लिए एक रास्ता खोज रहा हूं, लेकिन समाधान नहीं मिल सकता है। यदि आप return false करते return false तो jQuery .each() तोड़ सकते हैं।

क्या प्रत्येक (अंडरस्कोर) को रोकने का एक तरीका है?

 _([1,2,3]).each(function(v){ if (v==2) return /*what?*/; }) 

Solutions Collecting From Web of "कैसे underscore.js में _.each फ़ंक्शन को तोड़ना"

आप each विधि से नहीं तोड़ सकते हैं-यह each विधि के व्यवहार के लिए देशी को emulates करता है, और मूल के लिए प्रत्येक पाश (एक अपवाद फेंकने के अलावा) से बचने के लिए नहीं प्रदान करता है

हालांकि, सभी आशा खो नहीं है! आप Array.every विधि का उपयोग कर सकते हैं। 🙂

उस लिंक से:

every बार सरणी में उपस्थित प्रत्येक तत्व के लिए प्रदान की गई callback फ़ंक्शन को तब तक कार्यान्वित करता है जब तक कि वह एक पाता है जहां callback गलत मान देता है। यदि ऐसा तत्व पाया जाता है, तो every पद्धति तुरंत झूठी वापसी करती है।

दूसरे शब्दों में, आप कुछ इस तरह जटिल कर सकते हैं ( जेएसएफडियल के लिए लिंक ):

 [1, 2, 3, 4].every(function(n) { alert(n); return n !== 3; }); 

यह 1 से 3 चेतावनी देगा, और फिर लूप से "ब्रेक" होगा

आप underscore.js का उपयोग कर रहे हैं, इसलिए आपको यह जानकर प्रसन्नता होगी कि यह every विधि प्रदान करता है -वे इसे every कहते हैं, लेकिन उस लिंक के रूप में उल्लेख किया गया है, वे भी all नामित उपनाम प्रदान करते हैं

अद्यतन करें:

_। मिलेगा बेहतर होगा क्योंकि यह पाश के बाहर टूट जाता है जब तत्व पाया जाता है:

 var searchArr = [{id:1,text:"foo"},{id:2,text:"bar"}]; var count = 0; var filteredEl = _.find(searchArr,function(arrEl){ count = count +1; if(arrEl.id === 1 ){ return arrEl; } }); console.log(filteredEl); //since we are searching the first element in the array, the count will be one console.log(count); //output: filteredEl : {id:1,text:"foo"} , count: 1 

** पुराना **

यदि आप सशर्त लूप से बाहर निकलना चाहते हैं, तो _.ech के बजाय _.फ़िल्टर एपीआई का उपयोग करें। यहां एक कोड स्निपेट है

 var searchArr = [{id:1,text:"foo"},{id:2,text:"bar"}]; var filteredEl = _.filter(searchArr,function(arrEl){ if(arrEl.id === 1 ){ return arrEl; } }); console.log(filteredEl); //output: {id:1,text:"foo"} 

आप _.some बजाय _.some को देख सकते हैं। _.some होने पर सूची को _.some बंद हो जाता है परिणाम (एस) एक बाहरी चर में संग्रहीत किया जा सकता है

 _.some([1, 2, 3], function(v) { if (v == 2) return true; }) 

देखें http://underscorejs.org/#some

 _([1,2,3]).find(function(v){ return v if (v==2); }) 

शायद आप चाहते हैं कि अंडर्सकोर का कोई भी () या ढूंढें (), जो स्थिति पूरी होने पर प्रोसेस करना बंद कर दे।

अन्य उत्तरों की तरह, यह असंभव है अंडरस्कोर अंक # 21 में अंडरस्कोर में ब्रेकर के बारे में टिप्पणी यहां दी गई है

आप अंडरस्कोर में forEach एक नहीं तोड़ सकते, क्योंकि यह एक्कास्क्रिप्ट 5 देशी व्यवहार को emulates करता है।

मेरा मानना ​​है कि अगर आपका ऑरेंज वास्तव में एक वस्तु है जो आप खाली वस्तु का उपयोग कर लौटा सकते हैं।

 _.({1,2,3,4,5}).each(function(v){ if(v===3) return {}; }); 

यह भी ध्यान रखना अच्छा है कि प्रत्येक लूप को तोड़ा नहीं जा सकता – तोड़ने के लिए, इसके बजाय _

http://underscorejs.org/#each

अद्यतन करें:

आप अंदर एक त्रुटि फेंकने और बाहर पकड़कर वास्तव में "तोड़ सकते हैं": इस तरह से कुछ:

 try{ _([1,2,3]).each(function(v){ if (v==2) throw new Error('break'); }); }catch(e){ if(e.message === 'break'){ //break successful } } 

यह स्पष्ट रूप से आपके कोड को लूप में ट्रिगर करने वाले अन्य अपवादों के बारे में कुछ निहितार्थ हैं, इसलिए सावधानी से उपयोग करें!

मेरे मामले में काम किया

 var arr2 = _.filter(arr, function(item){ if ( item == 3 ) return item; });