"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Node.js में प्रत्येक लूप के लिए समय से पहले कैसे बाहर निकलें?

Node.js में प्रत्येक लूप के लिए समय से पहले कैसे बाहर निकलें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:939

How to Prematurely Exit a forEach Loop in Node.js?

प्रत्येक लूप के लिए एक नोड.जेएस को कैसे बाधित करें

ऐसी स्थितियों में जहां आपको नेस्टेड डेटा संरचनाओं को पुनरावर्ती रूप से पार करने और प्रत्येक तत्व के लिए एक ऑपरेशन निष्पादित करने की आवश्यकता होती है, आप इसका उपयोग कर सकते हैं रिकर्सन और प्रत्येक के लिए संयोजन। हालाँकि, ऐसे उदाहरण हो सकते हैं जहाँ आपको forEach लूप से समय से पहले बाहर निकलने की आवश्यकता होती है।

ब्रेक या जारी स्टेटमेंट वाले नियमित लूप के विपरीत, forEach में इसकी पुनरावृत्ति को रोकने के लिए एक अंतर्निहित तंत्र का अभाव होता है। इस व्यवहार का अनुकरण करने के लिए, आइए तीन दृष्टिकोण देखें:

1. "बदसूरत" तरीका: एक प्रासंगिक बूलियन का उपयोग करना

forEach को संदर्भ के रूप में दूसरा तर्क पास करें और इसमें एक बूलियन मान संग्रहीत करें। कॉलबैक फ़ंक्शन के अंदर, बूलियन की जांच करें और यदि आवश्यक हो तो ब्रेक आउट करें। यह दृष्टिकोण दृष्टिगत रूप से आकर्षक नहीं है।

function recurs(comment) {
    var stop = false;
    comment.comments.forEach(function (elem) {
        recurs(elem);
        if (...) stop = true;
    }, stop);
}

2. "विवादास्पद" तरीका: अपवाद हैंडलिंग

प्रत्येक लूप को ट्राइ-कैच ब्लॉक के भीतर संलग्न करें। जब आप तोड़ना चाहते हैं, तो एक अपवाद फेंकें और इसे लूप के बाहर पकड़ें। यह दृष्टिकोण प्रदर्शन को प्रभावित कर सकता है और कोड पठनीयता के बारे में चिंताएँ बढ़ा सकता है।

try {
    comment.comments.forEach(function (elem) {
        recurs(elem);
        if (...) throw new Error("Stop Iteration");
    });
} catch (e) {
    if (e.message === "Stop Iteration") return;
}

3. "मज़ेदार" तरीका: Every()

every() का उपयोग करना एक बेहतर विकल्प है। यह संग्रह के माध्यम से तब तक पुनरावृत्ति करता रहता है जब तक कि कॉलबैक फ़ंक्शन गलत न हो जाए। यह प्रभावी रूप से एक ब्रेक स्टेटमेंट के रूप में कार्य करता है।

comment.comments.every(function (elem) {
    recurs(elem);
    if (...) return false;
    return true;
});

यदि आप ब्रेक के लिए ट्रू लौटना पसंद करते हैं तो आप हर() के बजाय कुछ() का भी उपयोग कर सकते हैं।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729171158 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3