paint-brush
शुरुआती लोगों के लिए जावास्क्रिप्ट लूप्स: मूल बातें सीखेंद्वारा@hacker-mgqp1lu
440 रीडिंग
440 रीडिंग

शुरुआती लोगों के लिए जावास्क्रिप्ट लूप्स: मूल बातें सीखें

द्वारा 10m2024/07/06
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

जावास्क्रिप्ट में दोहराए गए कार्यों को करना बहुत काम और समय लेने वाला हो सकता है। लूप इस समस्या को हल करने का एक शानदार तरीका प्रदान करते हैं क्योंकि वे कोड की दोहराव को कम करने में मदद करते हैं, जिससे कोड की लंबाई कम हो जाती है। इस लेख में, हम सीखेंगे कि लूप क्या हैं, लूप के विभिन्न प्रकार, वे कैसे काम करते हैं, और लूप का उपयोग करते समय विचार करने के लिए सर्वोत्तम अभ्यास।
featured image - शुरुआती लोगों के लिए जावास्क्रिप्ट लूप्स: मूल बातें सीखें
undefined HackerNoon profile picture

यह एक उदास सोमवार है, और आप काम पर हैं। हम सभी जानते हैं कि सोमवार कितना निराशाजनक हो सकता है, है न? आपका बॉस आपके पास आता है और कहता है, "अरे, मेरे पास सप्ताहांत में प्राप्त 300 बिना खोले गए ईमेल हैं। मैं चाहता हूँ कि आप हर एक को खोलें, प्रेषक का नाम लिखें, और काम पूरा होने के बाद ईमेल को हटा दें।"


यदि आप इसे मैन्युअली करने का प्रयास करते हैं तो यह कार्य बहुत थकाऊ लगता है। आपके दिमाग में अगली बात शायद यह होगी कि आप Google पर जाएं और ऐसे सॉफ़्टवेयर की तलाश करें जो इस प्रक्रिया को स्वचालित कर सके और आपके जीवन को आसान बना सके, है न?


खैर, प्रोग्रामिंग में भी ऐसी ही परिस्थितियाँ होती हैं। कई बार ऐसा होता है कि आपको तब तक दोहराए जाने वाले कार्य करने पड़ते हैं जब तक कि वे पूरे न हो जाएँ। आप इस समस्या का समाधान कैसे करते हैं? जावास्क्रिप्ट में, हमारे पास लूप्स होते हैं। लूप्स हमें कार्य को पूरा करने के लिए आवश्यक कोड की मात्रा को कम करके दोहराए जाने वाले कार्यों को हल करने की अनुमति देते हैं।


इस लेख में हम चर्चा करेंगे कि लूप क्या है, यह कैसे काम करता है, तथा इसे अपने प्रोग्राम में लागू करने के लिए हम कौन-कौन सी विभिन्न विधियां अपना सकते हैं।

लूप क्या है?

जावास्क्रिप्ट में लूप का उपयोग बार-बार दोहराए जाने वाले कार्यों को आसानी से करने के लिए किया जाता है। वे एक शर्त पर आधारित होते हैं जो सत्य या असत्य लौटाता है।


शर्त एक अभिव्यक्ति है जिसे लूप को चालू रखने के लिए पास किया जाना चाहिए। जब निर्दिष्ट शर्तें सत्य मान लौटाती हैं तो लूप चलता है और जब वे गलत मान लौटाती हैं तो रुक जाता है।

आपको लूप का उपयोग कब करना चाहिए?

लूप दोहराए जाने वाले कार्यों को करने के लिए उपयोगी होते हैं। उदाहरण के लिए, लूप का उपयोग करने से किसी समस्या को हल करने के लिए आवश्यक कोड छोटा हो जाता है। यह समय बचाता है, मेमोरी उपयोग को अनुकूलित करता है, और लचीलेपन में सुधार करता है।


लूप का असली महत्व कोड की लंबाई कम करने और दोहराव को सीमित करने से कहीं आगे तक फैला हुआ है। वे सरणी, ऑब्जेक्ट या अन्य संरचनाओं में डेटा के साथ काम करते समय भी मदद करते हैं। इसके अलावा, लूप दोहराव वाले कोड को कम करके और कोड की पुन: प्रयोज्यता को बढ़ाकर कोड मॉड्यूलरिटी को बढ़ावा देते हैं, जिससे ऐसे कोड बनाना संभव हो जाता है जिन्हें आपके प्रोजेक्ट के विभिन्न हिस्सों में इस्तेमाल किया जा सकता है।

लूप के प्रकार

लूप की दो प्रमुख श्रेणियां हैं: प्रवेश-नियंत्रित लूप और निकास-नियंत्रित लूप।


एंट्री-नियंत्रित लूप लूप के बॉडी को निष्पादित करने से पहले "लूप के प्रवेश द्वार" पर स्थिति का मूल्यांकन करते हैं। यदि स्थिति सत्य है, तो बॉडी चलती है। यदि नहीं, तो बॉडी नहीं चलती। for और while लूप एंट्री-नियंत्रित लूप के उदाहरण हैं।


एग्जिट-नियंत्रित लूप परीक्षण स्थिति पर लूप के बॉडी पर ध्यान केंद्रित करते हैं, यह सुनिश्चित करते हुए कि परीक्षण स्थिति का मूल्यांकन करने से पहले लूप के बॉडी को कम से कम एक बार निष्पादित किया जाता है। एग्जिट-नियंत्रित लूप का एक अच्छा उदाहरण do-while लूप है।


आइये प्रवेश-नियंत्रित लूपों के कुछ उदाहरणों की जांच करें:

घुमाव के दौरान

while लूप का सिंटैक्स इस प्रकार है।

 while (condition) { // loop's body }

निम्नलिखित सूची while लूप की कार्यक्षमता को समझाती है:


  1. while लूप कोष्ठक के अंदर परीक्षण स्थिति लेता है।


  2. प्रोग्राम यह देखने के लिए स्थिति की जांच करता है कि यह पास हुआ या असफल।


  3. जब तक शर्त पारित होती है, लूप के बॉडी के भीतर कोड निष्पादित होता है।


  4. परीक्षण स्थिति विफल होने पर प्रोग्राम अपना संचालन समाप्त कर देता है।


नीचे, आइए while लूप का एक व्यावहारिक उदाहरण लें:

 let arr = []; let i = 1; let number = 5; while (i <= number) { arr.push(i) i++ } console.log(arr)
  1. उपरोक्त कोड स्निपेट "arr", "i", और "num" चरों को आरंभीकृत करता है।


  2. " arr " चर एक सारणी है जो परीक्षण शर्त को पास करने वाले मानों को रखती है।


  3. "i" चर प्रत्येक पुनरावृत्ति के बाद प्रत्येक वृद्धि का ट्रैक रखता है।


  4. "संख्या" चर प्रत्येक पुनरावृत्ति के बाद "i" के मान की तुलना उसके मान (5) से करता है।


  5. लूप के मुख्य भाग में कोड प्रत्येक पुनरावृत्ति के बाद "i" के प्रत्येक मान को सारणी में धकेलता है, जब तक कि "i" "संख्या" से कम या उसके बराबर हो।


  6. एक बार जब "i" का वर्तमान मान शर्त को पूरा नहीं कर पाता है, इस स्थिति में, जहां "i" का मान "संख्या" जो कि 6 है, से अधिक है, तो लूप चलना बंद हो जाता है।


push() विधि एक अंतर्निहित जावास्क्रिप्ट फ़ंक्शन है जो किसी सारणी के अंत में एक नया आइटम जोड़ता है।


उत्पादन

 [1, 2, 3, 4, 5]

do-while लूप

do-while लूप, while लूप से काफी मिलता-जुलता है; while और do-while लूप के बीच मुख्य अंतर यह है कि do-while लूप, लूप की स्थिति का मूल्यांकन करने से पहले कम से कम एक बार कोड निष्पादन सुनिश्चित करता है; do-while लूप का नीचे दिया गया सिंटैक्स है।


 do { // loop's body } while (//condition)

do-while एक एक्जिट-नियंत्रित लूप का एक बेहतरीन उदाहरण है। यह इस तथ्य में निहित है कि एक्जिट-नियंत्रित लूप परीक्षण स्थिति से पहले लूप के शरीर को प्राथमिकता देते हैं, अब आइए do-while लूप का उपयोग करते हुए एक व्यावहारिक कोड उदाहरण पर गौर करें।


उदाहरण:

 let i = 1; let num = 5; do { console.log(i); i++; } while (i <= num);

अब, आइए इस कोड स्निपेट को तोड़ें:


  1. हमने "i" और "num" चरों को आरंभीकृत किया।


  2. कंसोल लूप की स्थिति का मूल्यांकन करने से पहले "i" (1) का मान लॉग करता है।


  3. शर्त की जाँच की जाती है, तथा प्रत्येक पुनरावृत्ति के बाद "i" का मान +1 से बढ़ जाता है।


  4. जब "i" "num" से बड़ा हो जाता है तो लूप अपना संचालन समाप्त कर देता है।


उत्पादन

 1 2 3 4 5


यद्यपि do-while लूप, while लूप से बहुत अधिक मिलता-जुलता है, फिर भी कुछ सूक्ष्म अंतर हैं जिन पर हमें ध्यान देना चाहिए; आइए एक और उदाहरण लेते हैं जो while और do-while लूप के बीच अंतर की तुलना करता है।

 let i = 5; let num = 4 while( i < num) { console.log(i) }

उपरोक्त while लूप कंसोल पर कोई परिणाम नहीं लौटाएगा; अब, ऐसा क्यों है?


  1. हमने "i" और "num" चरों को क्रमशः 5 और 4 के मानों से आरंभ किया।


  2. यह शर्त जाँचती है कि क्या "i" का मान "num" से कम है।


  3. यदि सत्य है, तो यह प्रत्येक संबंधित मान को लॉग इन करता है।


  4. चूँकि "i" का प्रारंभिक मान "num" से अधिक है, इसलिए लूप कभी नहीं चलता।


अब, आइए do-while लूप के साथ एक समान उदाहरण लेते हैं।

 let i = 5; let num = 4; do { console.log(i) } while ( i < num)


उत्पादन

 5

do-while लूप कोड ब्लॉक के निष्पादन को सुनिश्चित करता है, जो कंसोल में 5 लौटाता है, हालाँकि "i" का मान "num" से ज़्यादा है, फिर भी इसे कंसोल में एक बार लॉग किया जाता है। यह प्रतिनिधित्व आपको do-while और while लूप के बीच कार्यक्षमता में अंतर दिखाता है।

पाश के लिए

for loop एक अनोखा प्रकार का लूप है और प्रोग्रामर द्वारा सबसे अधिक इस्तेमाल किए जाने वाले लूप में से एक है, for loop एक ऐसा लूप है जो किसी शर्त के आधार पर एक कोड ब्लॉक को एक निश्चित संख्या में बार चलाता है। फॉर लूप का सिंटैक्स नीचे दिया गया है।

 for (Expression1...; Expression2....; Expression3...{    //code block }

अभिव्यक्ति 1: for loop के इस भाग को इनिशियलाइज़ेशन क्षेत्र के रूप में भी जाना जाता है; यह हमारे for loop की शुरुआत है और वह क्षेत्र है जहाँ काउंटर वैरिएबल परिभाषित किया गया है। काउंटर वैरिएबल का उपयोग लूप के चलने की संख्या को ट्रैक करने और उसे मान के रूप में संग्रहीत करने के लिए किया जाता है।


अभिव्यक्ति 2: यह लूप का दूसरा भाग है; यह भाग सशर्त कथन को परिभाषित करता है जो लूप को निष्पादित करेगा।


अभिव्यक्ति 3: यह वह स्थान है जहां लूप समाप्त होता है; इस अनुभाग में काउंटर चर प्रत्येक पुनरावृत्ति के बाद शर्त में निर्दिष्ट मान को बढ़ाकर या घटाकर अपना मान अद्यतन करता है।


आइये फॉर लूप का उपयोग करके एक उदाहरण देखें।


 for (let i = 0; i < 100; i++) {  console.log("Hello World" ) }

उपरोक्त कोड स्निपेट से, आइए इसे एक साथ तोड़ें।


  1. सबसे पहले, हमने काउंटर चर " i" को शून्य मान के साथ आरंभीकृत किया है।


  2. इसके बाद, हमने सशर्त कथन बनाया है जो कोड को चालू रखेगा।


  3. हमने "i" के मान की तुलना 100 से की; यदि यह परीक्षण पास हो जाता है, तो "Hello World" लॉग किया जाता है।


  4. यह प्रक्रिया दोहराई जाती है जबकि प्रत्येक पुनरावृत्ति के बाद काउंटर +1 से बढ़ता है।


  5. काउंटर का मान 100 तक पहुंचने पर लूप समाप्त हो जाता है।


उत्पादन

 Hello World Hello World Hello World ... //repeated 97 more times making it 100 "Hello World" in total ...


प्रत्येक लूप के लिए

for-each लूप जावास्क्रिप्ट में एक विधि है जो एक सरणी के माध्यम से यात्रा करती है और उस सरणी में प्रत्येक तत्व पर एक कॉलबैक फ़ंक्शन लागू करती है; एक कॉलबैक फ़ंक्शन बस एक फ़ंक्शन में पैरामीटर के रूप में पारित किया गया एक और फ़ंक्शन है। कॉलबैक फ़ंक्शन मुख्य फ़ंक्शन के निष्पादन के बाद क्रमिक रूप से चलने के द्वारा काम करता है।


आइये for-each लूप के मूल सिंटैक्स की जांच करें।

 array.forEach(function(currentValue, index, arr))


ऊपर दिया गया कोड for-each लूप की कार्यप्रणाली को समझाता है।


  • यह लूप तीन पैरामीटर स्वीकार करता है, जो वर्तमान मान, एक इंडेक्स और एक सरणी हैं।


  • वर्तमान मान सरणी में तत्व के वर्तमान मान का प्रतिनिधित्व करता है।


  • सूचकांक एक वैकल्पिक पैरामीटर है जो आपको उस सारणी में वर्तमान तत्व की क्रमांकित स्थिति बताता है।


  • arr एक अन्य वैकल्पिक पैरामीटर है जो आपको बताता है कि तत्व किस सरणी से संबंधित है।


 let myArray = [1, 2, 3, 4, 5]; array.forEach((num, index, arr) => { arr[index] = num * 2; console.log(array); });

आइये उपरोक्त उदाहरण को समझें:


  1. हमने "myArray" नामक चर नाम से एक सारणी को आरंभीकृत किया तथा उसे 1 से 5 तक के पूर्णांकों के साथ संग्रहीत किया।


  2. for-each array विधि तीन पैरामीटर लेती है और array पर कॉलबैक फ़ंक्शन लागू करती है।


  3. यह पंक्ति; arr[index] = num * 2 वर्तमान तत्व के मान को 2 से गुणा करती है और लौटाए गए मान को वर्तमान तत्व के सूचकांक में निर्दिष्ट करती है।


ध्यान दें: for-each array विधि एक नई array नहीं लौटाती है; बल्कि, यह मूल array को संशोधित करती है और उसे लौटाती है।


उत्पादन

 [2, 4, 6, 8, 10]

जावास्क्रिप्ट में For...In और For...of लूप्स क्या हैं?

जब पुनरावृत्तीय ऑब्जेक्ट्स पर पुनरावृत्तीय करने की बात आती है तो for... in और for... of लूप बहुत उपयोगी होते हैं; पुनरावृत्तीय ऑब्जेक्ट्स किसी भी ऐसे तत्व को संदर्भित करते हैं जिस पर लूप किया जा सकता है, पुनरावृत्तीय ऑब्जेक्ट्स के सामान्य उदाहरण हैं सरणियाँ, स्ट्रिंग्स, सेट, आदि।


for... in और for... of में समान हैं कि वे वस्तुओं के माध्यम से कैसे पुनरावृति/स्थानांतरित होते हैं, उनके बीच मुख्य अंतर यह है कि वे किस प्रकार मान लौटाते हैं।

for... लूप्स में

for... in लूप तब उपयोगी होता है जब आपको किसी ऑब्जेक्ट से कुंजी(कुंजी)/गुण और पैरेंट ऑब्जेक्ट से उसके संगत गुण निकालने की आवश्यकता होती है। for... in लूप कभी-कभी किसी ऑब्जेक्ट के माध्यम से उस तरीके से पुनरावृति कर सकता है जो उस विशेष ऑब्जेक्ट में परिभाषित किए गए तरीके से अलग होता है; आइए for... in लूप इन एक्शन का एक उदाहरण लेते हैं।

 let namesArray = []; const studentScores = { John: 60, Dan: 53, Tricia: 73, Jamal: 45, Jane: 52 } for(const name in studentScores){ namesArray.push(name); } console.log(namesArray);

ऊपर दिए गए उदाहरण में, हमने studentScores नामक एक ऑब्जेक्ट को परिभाषित किया है जिसमें कई छात्रों के नाम और उनके संबंधित स्कोर शामिल हैं। for... in उपयोग करके, हम केवल छात्रों के नाम प्राप्त करने में सक्षम थे, जो ऑब्जेक्ट studentScores की कुंजियों का प्रतिनिधित्व करते हैं, और push() विधि का उपयोग करके उन्हें एक सरणी में संग्रहीत करते हैं।


उत्पादन

 ["John", "Dan", "Tricia", "Jamal", "Jane"]

लूप्स के लिए...

for... of लूप एक विशेष प्रकार का लूप है जो पुनरावृत्त ऑब्जेक्ट्स जैसे कि एरे, स्ट्रिंग्स, मैप्स आदि के मानों पर पुनरावृत्त होता है, for... of लूप्स किसी ऑब्जेक्ट की कुंजियों या गुणों से संबंधित नहीं होते हैं, बल्कि वे केवल मानों पर प्राथमिकताएं दर्शाते हैं।


for... of लूप नियमित ऑब्जेक्ट पर पुनरावृति करने में असमर्थ है और चूंकि वे पुनरावृति योग्य नहीं हैं, इसलिए त्रुटि उत्पन्न होगी। आइए for.. of लूप का उपयोग करके एक उदाहरण लेते हैं।

 let numArray = [1,2,3,4,5] for (const value of numArray) {   console.log(value) } // Output = 1,2,3,4,5

संक्षेप में, for... in और for... of लूप पुनरावृत्त ऑब्जेक्ट्स के माध्यम से लूप करने का एक शानदार तरीका है; मुख्य अंतर यह है for... in लूप ऑब्जेक्ट की कुंजी लौटाता है जबकि for... of लूप केवल पुनरावृत्त ऑब्जेक्ट्स के मान लौटाता है।

अनंत लूप क्या है और हम इससे कैसे बच सकते हैं?

अनंत लूप से तात्पर्य ऐसे लूप से है जो अनिश्चित काल तक चलता रहता है; ऐसा तब होता है जब लूप में कोई निर्धारित निकास स्थिति नहीं होती है। अनंत लूप खतरनाक होते हैं क्योंकि वे आपके ब्राउज़र को क्रैश कर सकते हैं और आपके प्रोग्राम में अवांछित क्रियाएँ कर सकते हैं।

 // infinite loop sample while (true) { console.log("keep on running") }

अपने प्रोग्राम में अनंत लूप को रोकने के लिए, हमेशा सुनिश्चित करें कि आपके लूप में एक निकास स्थिति परिभाषित है।

निष्कर्ष

इस लेख के अंत तक पहुँचने के लिए आपका बहुत-बहुत धन्यवाद, जावास्क्रिप्ट में लूप एक महत्वपूर्ण अवधारणा है जिसे हर डेवलपर को मास्टर करने की आवश्यकता है क्योंकि यह एक अच्छा और अनुकूलन योग्य प्रोग्राम बनाने के लिए बहुत मूल्यवान है। मेरा मानना है कि इस लेख से आप अपने प्रोग्राम में लूप का उपयोग करने की मूल बातें और पेचीदगियों को समझ पाएंगे।