2013-02-22 17 views
17

मैं एक छोटी जावास्क्रिप्ट कोड, जहां मैं पाश के लिए में छोड़ कर अगली पर करने की जरूरत है .... नीचे देखें:थोड़ी देर के साथ जावास्क्रिप्ट में अगली बार कैसे छोड़ें?

var y = new Array ('1', '2', '3', '4'); 
for (var x in y) { 
    callFunctionOne(y[x]); 
    while (condition){ 
     condition = callFunctionTwo(y[x]); 
     //now want to move to the next item so 
     // invoke callFunctionTwo() again... 
    } 
} 

रखने के लिए यह आसान तो सिंटैक्स त्रुटि मुक्त हो सकता है चाहता था।

+0

शायद आप 'जारी रखें' की तलाश में हैं? https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/continue मुझे पूरा यकीन नहीं है कि आप क्या हासिल करना चाहते हैं। इसके अलावा, सरणी पर फिर से चलाने के लिए 'इन ... इन' का उपयोग न करें। –

+0

मुझे लगता है कि उनका मतलब था कि लूप 'ब्रेक' था और * लूप के लिए * जारी रखें। यदि आपके नमूने की तरह * कुछ समय के बाद * कुछ भी नहीं है, तो आप केवल 'ब्रेक;' –

+0

का उपयोग कर सकते हैं आप लूप सहित जावास्क्रिप्ट में बहुत सी चीजें लेबल कर सकते हैं। आश्चर्यजनक परिणामों के लिए 'जारी रखें' और 'ब्रेक' लेबल के साथ संयोजन करें! –

उत्तर

35

for...in का उपयोग करके सरणी पर पुनरावृत्ति न करें। यह वाक्यविन्यास किसी ऑब्जेक्ट के गुणों के पुनरावृत्ति के लिए है, जो आप के बाद नहीं हैं।

अपने वास्तविक प्रश्न का सवाल है, तो आप उपयोग कर सकते हैं continue:

var y = [1, 2, 3, 4]; 

for (var i = 0; i < y.length; i++) { 
    if (y[i] == 2) { 
     continue; 
    } 

    console.log(y[i]); 
} 

यह प्रिंट होगा:

1 
3 
4 

वास्तव में, ऐसा लगता है कि आप while से बाहर तोड़ करना चाहते हैं पाश। आपको लगता है कि के लिए break उपयोग कर सकते हैं:

while (condition){ 
    condition = callFunctionTwo(y[x]); 
    break; 
} 

रूप में अच्छी तरह do...while छोरों पर एक नजर डालें।

+0

ब्लेंडर धन्यवाद। यह वास्तव में मदद करेगा। –

संबंधित मुद्दे