जावास्क्रिप्ट में पुनरावृत्ति प्रसंस्करण

जावास्क्रिप्ट में पुनरावृत्ति प्रसंस्करण

इस लेख में, हम जावास्क्रिप्ट में पुनरावृत्ति प्रसंस्करण को समझाएंगे।

YouTube Video

जावास्क्रिप्ट में for कथन

मूल वाक्यविन्यास

1for (initialization; condition; update) {
2  // Code to repeat
3}

जावास्क्रिप्ट में for कथन पुनरावृत्ति करने के लिए एक सिंटैक्स है। जब तक कोई विशेष शर्त पूरी होती है, यह निर्दिष्ट कोड ब्लॉक को बार-बार निष्पादित करता है। for कथन का उपयोग करके, एक ही प्रक्रिया को कई बार प्रभावी ढंग से निष्पादित किया जा सकता है।

  • आरंभिककरण (initialization): वह भाग जो लूप शुरू करने से पहले केवल एक बार निष्पादित होता है। लूप काउंटर जैसे वेरिएबल्स को प्रारंभ करें।
  • शर्त (condition): वह शर्त जो यह निर्धारित करती है कि लूप जारी रहेगा या नहीं। यदि true है, तो लूप जारी रहता है; यदि false है, तो यह समाप्त हो जाता है।
  • अपडेट (update): प्रत्येक लूप के अंत में लूप काउंटर को अपडेट करने के लिए यह निष्पादित होता है।

उदाहरण

1for (let i = 0; i < 5; i++) {
2    console.log(i);
3}

इस मामले में, i शून्य से शुरू होता है, और जब तक i < 5 true है, लूप चलता है। i++ लूप के प्रत्येक पुनरावृत्ति में i को 1 से बढ़ाता है। परिणामस्वरूप, 0 से 4 तक की संख्या प्रदर्शित होती है।

लूप काउंटर का क्षेत्रफल

for कथन के आरंभिककरण भाग में वेरिएबल्स को घोषित या प्रारंभ करें। यहां घोषित वेरिएबल्स केवल लूप के भीतर मान्य हैं।

1for (let i = 0; i < 3; i++) {
2    console.log(i); // Outputs 0, 1, 2
3}
4console.log(i);  // ReferenceError
  • जैसा कि इस उदाहरण में दिखाया गया है, for कथन के बाहर एक वेरिएबल को संदर्भित करने से एक त्रुटि होगी।

अनंत लूप

ऐसी शर्त सेट करना जो लूप को समाप्त नहीं करती, अनंत लूप का परिणाम होता है। यह ब्राउज़र या सिस्टम पर भार डाल सकता है, इसलिए सावधानी आवश्यक है।

1for (;;) {
2    console.log("Infinite loop");
3    break; // Exits the infinite loop with break
4}

ऐरे और for कथन

ऐरे के साथ for कथन का उपयोग करना सामान्य है। सरणी के प्रत्येक तत्व को संसाधित करने के लिए यह सुविधाजनक है।

उदाहरण

1let fruits = ["apple", "banana", "cherry"];
2
3for (let i = 0; i < fruits.length; i++) {
4    console.log(fruits[i]);
5}
6// Outputs "apple", "banana", "cherry"

इस तरीके से, आप सूचकांक का उपयोग करके सरणी के प्रत्येक तत्व को संसाधित कर सकते हैं।

अन्य लूप संरचनाएँ

for...of वक्तव्य

for...of वक्तव्य का उपयोग सरणियों और स्ट्रिंग्स जैसे परिवर्ती वस्तुओं के लिए किया जाता है।

1let fruits = ["apple", "banana", "cherry"];
2
3for (let fruit of fruits) {
4    console.log(fruit);
5}
6// Outputs "apple", "banana", "cherry"

यह आपको सूचकांक का उपयोग किए बिना प्रत्येक तत्व को संसाधित करने की अनुमति देता है।

for...in वक्तव्य

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

1let person = { name: "John", age: 30, city: "Tokyo" };
2
3for (let key in person) {
4    console.log(key + ": " + person[key]);
5}
6// Outputs "name: John", "age: 30", "city: Tokyo"

इस तरीके से, आप कुंजियों का उपयोग करके प्रत्येक तत्व पर संचालन कर सकते हैं।

सारांश

  • for वक्तव्य एक लूप संरचना है जिसमें तीन भाग होते हैं: आरंभांकन, स्थिति, और अपडेट।
  • आप break या continue का उपयोग करके लूप के व्यवहार को नियंत्रित कर सकते हैं।
  • जब सरणी या ऑब्जेक्ट के साथ संयोजन किया जाता है, तो तत्वों या विशेषताओं को कुशलता से संसाधित किया जा सकता है।

JavaScript में while वक्तव्य

मूल वाक्यविन्यास

1while (condition) {
2    // Code that repeats while the condition is true
3}

JavaScript में while वक्तव्य एक लूप संरचना है जो निर्दिष्ट स्थिति true होने तक दोहराए जाने वाले संचालन को निष्पादित करती है। for वक्तव्य के समान, while वक्तव्य केवल स्थिति निर्दिष्ट करता है।

  • स्थिति: वह शर्तात्मक अभिव्यक्ति लिखें जो यह निर्धारित करती है कि लूप जारी रहेगा या नहीं। लूप true रहने तक जारी रहता है और जब यह false हो जाता है तो समाप्त हो जाता है।

उदाहरण

1let i = 0;
2
3while (i < 5) {
4    console.log(i);
5    i++;
6}
7console.log(i);  // 5

इस उदाहरण में, लूप चर i को 0 से शुरू करता है और तब तक निष्पादित होता है जब तक i < 5 true है। हर लूप पुनरावृत्ति में, i को 1 से बढ़ाया जाता है, और जब i 5 हो जाता है, तो स्थिति false हो जाती है और लूप समाप्त हो जाता है। परिणामस्वरूप, while वक्तव्य 0 से 4 तक दिखाता है।

for वक्तव्य के विपरीत, while वक्तव्य में, चर का आरंभांकन और अपडेट अलग-अलग वक्तव्यों के रूप में लिखा जाता है। आप while वक्तव्य के बाद चर को भी संदर्भित कर सकते हैं। इस मामले में, while वक्तव्य समाप्त होने के बाद 5 प्रदर्शित किया जाता है।

अनंत लूप

यदि स्थिति हमेशा true रहती है, तो एक अनंत लूप होता है जो समाप्त नहीं होता। अनंत लूप से बचा जाना चाहिए, लेकिन यदि जानबूझकर उपयोग किया जाता है, तो आप break वक्तव्य का उपयोग करके लूप समाप्त कर सकते हैं।

उदाहरण

1while (true) {
2    console.log("Infinite loop");
3    break;  // Ends the loop with `break`
4}

while लूप के साथ ऐरे को संसाधित करना

ऐरे को while कथन के साथ भी संसाधित करना संभव है।

उदाहरण

1let fruits = ["apple", "banana", "cherry"];
2let i = 0;
3
4while (i < fruits.length) {
5    console.log(fruits[i]);
6    i++;
7}
8// Outputs "apple", "banana", "cherry"

do...while कथन

मूल वाक्यविन्यास

1do {
2    // Code that is executed at least once
3} while (condition);

do...while कथन, जो कि while कथन का एक प्रकार है, लूप को कम से कम एक बार चलाने के बाद स्थिति की जांच करता है। जहां while कथन पहले स्थिति की जांच करता है, वहीं do...while कथन स्थिति की पुष्टि करने से पहले प्रक्रिया को एक बार निष्पादित करता है।

उदाहरण

1let i = 0;
2
3do {
4    console.log(i);
5    i++;
6} while (i < 5);

इस उदाहरण में, i को 0 से 4 तक प्रदर्शित किया जाता है। do...while कथन while कथन से अलग है क्योंकि यह हमेशा एक बार निष्पादित होता है, चाहे स्थिति false हो।

सारांश

  • while कथन का उपयोग तब तक कोड को बार-बार निष्पादित करने के लिए किया जाता है जब तक स्थिति true हो।
  • अनंत लूप से सावधान रहें, लेकिन आप break और continue का उपयोग करके लूप के प्रवाह को नियंत्रित कर सकते हैं।
  • do...while कथन तब उपयोगी होता है जब आप लूप को कम से कम एक बार निष्पादित करना चाहते हैं।

break और continue

आप लूप के अंदर break और continue का उपयोग कर सकते हैं।

  • break का उपयोग लूप को समय से पहले समाप्त करने के लिए किया जाता है।
  • continue वर्तमान इटरेशन को छोड़कर अगले इटरेशन पर चलता है।

break का उदाहरण

 1for (let i = 0; i < 10; i++) {
 2    if (i === 5) {
 3        break;  // Exits the loop when i is 5
 4    }
 5    console.log(i);
 6}
 7// Outputs 0, 1, 2, 3, 4
 8
 9let i = 0;
10
11while (i < 10) {
12    if (i === 5) {
13        break;  // Ends the loop when i is 5
14    }
15    console.log(i++);
16}
17// Outputs 0, 1, 2, 3, 4

इस स्थिति में, break तब निष्पादित होता है जब i 5 हो जाता है। परिणामस्वरूप, 0 से 4 तक की संख्या प्रदर्शित होती है।

continue का उदाहरण

 1for (let i = 0; i < 5; i++) {
 2    if (i === 2) {
 3        continue;  // Skips when i is 2
 4    }
 5    console.log(i);
 6}
 7// Outputs 0, 1, 3, 4
 8
 9let i = 0;
10while (i < 5) {
11    i++;
12    if (i === 3) {
13        continue;  // Skips when i is 3
14    }
15    console.log(i);
16}
17// Outputs 1, 2, 4, 5

इस स्थिति में, continue तब निष्पादित होता है जब i 2 हो। परिणामस्वरूप, 2 को छोड़कर अन्य संख्या प्रदर्शित होती हैं।

जावास्क्रिप्ट में नेस्टेड लूप

जावास्क्रिप्ट प्रोग्रामिंग में, एक नेस्टेड लूप वह संरचना है जिसमें एक लूप के भीतर दूसरा लूप होता है। इस प्रकार के लूप बहुत प्रभावी होते हैं जब विशेष एल्गोरिद्म या प्रक्रियाएं कई आयामों या स्तरों तक फैली हों। उदाहरण के लिए, जब एक बहु-आयामी ऐरे जिसमें ऐरे के भीतर ऐरे हों, को संसाधित किया जाता है, तो यह एक विशिष्ट मामला है।

यहां, हम नेस्टेड लूप की मूल संरचना, उपयोग के उदाहरण, सावधानियां, और अनुकूलन विचारों की व्याख्या करेंगे।

नेस्टेड लूप की मूल संरचना

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

नीचे दो नेस्टेड लूप का एक बुनियादी उदाहरण दिया गया है।

 1for (let i = 0; i < 3; i++) {
 2    console.log(`Outer loop iteration: ${i}`);
 3
 4    for (let j = 0; j < 2; j++) {
 5        console.log(`  Inner loop iteration: ${j}`);
 6    }
 7}
 8// Output:
 9// Outer loop iteration: 0
10//   Inner loop iteration: 0
11//   Inner loop iteration: 1
12// Outer loop iteration: 1
13//   Inner loop iteration: 0
14//   Inner loop iteration: 1
15// Outer loop iteration: 2
16//   Inner loop iteration: 0
17//   Inner loop iteration: 1

उपर्युक्त कोड में, बाहरी लूप में i गिना जाता है, और आंतरिक लूप में j गिना जाता है। जब भी बाहरी लूप एक बार निष्पादित होता है, आंतरिक लूप दो बार निष्पादित होता है।

नेस्टेड लूप का व्यावहारिक उदाहरण

नेस्टेड लूप विशेष रूप से मल्टीडायमेंशनल एरेज़ को संभालने के लिए उपयोगी हैं। उदाहरण के लिए, एक द्वि-आयामी ऐरे को संसाधित करते समय, आपको पंक्तियों (बाहरी लूप) और स्तंभों (आंतरिक लूप) दोनों को संभालना होगा।

निम्नलिखित उदाहरण में, हम एक द्वि-आयामी ऐरे को संभालते हैं और प्रत्येक तत्व को प्रिंट करते हैं।

 1const matrix = [
 2  [1, 2, 3],
 3  [4, 5, 6],
 4  [7, 8, 9]
 5];
 6
 7for (let row = 0; row < matrix.length; row++) {
 8    for (let col = 0; col < matrix[row].length; col++) {
 9        console.log(`Element at [${row}][${col}] is: ${matrix[row][col]}`);
10    }
11}
12// Output:
13// Element at [0][0] is: 1
14// Element at [0][1] is: 2
15// Element at [0][2] is: 3
16// Element at [1][0] is: 4
17// Element at [1][1] is: 5
18// Element at [1][2] is: 6
19// Element at [2][0] is: 7
20// Element at [2][1] is: 8
21// Element at [2][2] is: 9

इस प्रकार, नेस्टेड लूप का उपयोग करके एक द्वि-आयामी ऐरे के प्रत्येक तत्व तक पहुंच संभव होती है।

नोट्स

नेस्टेड लूप का उपयोग करते समय कुछ बिंदुओं का ध्यान रखना आवश्यक है।

  1. प्रदर्शन से संबंधित समस्याएँ

    जैसे ही नेस्टेड लूप गहरे होते हैं, निष्पादन समय तेजी से बढ़ता है। उदाहरण के लिए, यदि बाहरी लूप 100 बार निष्पादित होता है और आंतरिक लूप 100 बार, तो कुल 10,000 संचालन किए जाते हैं। इसलिए, यदि कई लूप पुनरावृत्तियाँ हैं, तो दक्षता के लिए लूप अनुकूलन पर विचार करना चाहिए।

  2. जटिल एल्गोरिदम पर अनुप्रयोग

    नेस्टेड लूप बहुत शक्तिशाली होते हैं, लेकिन जैसे ही संसाधन जटिल होता है, कोड समझना कठिन हो सकता है। इसलिए, कोड की पठनीयता बनाए रखने के लिए, उपयुक्त टिप्पणी और कार्यों के साथ प्रसंस्करण को व्यवस्थित करना महत्वपूर्ण है।

अनुकूलन विचार

नेस्टेड लूप का उपयोग करते समय, निम्नलिखित अनुकूलनों पर विचार किया जा सकता है।

  1. लूप को जल्दी समाप्त करना

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

1for (let i = 0; i < 5; i++) {
2    for (let j = 0; j < 5; j++) {
3        if (i + j > 5) {
4            break;
5        }
6        console.log(`i: ${i}, j: ${j}`);
7    }
8}
  1. गणनाओं को बाहर ले जाएँ

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

 1let array = [1, 2, 3, 4, 5];
 2
 3// Inefficient example (calculating every time)
 4for (let i = 0; i < array.length; i++) {
 5    for (let j = 0; j < array.length; j++) {
 6        let sum = array[i] + array[j];
 7        console.log(sum);
 8    }
 9}
10
11// Efficient example (calculating outside)
12let arrayLength = array.length;
13for (let i = 0; i < arrayLength; i++) {
14    for (let j = 0; j < arrayLength; j++) {
15        let sum = array[i] + array[j];
16        console.log(sum);
17    }
18}

सारांश

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

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video