# जाभास्क्रिप्ट आधारभूत: एरे र लूपहरू ![जाभास्क्रिप्ट आधारभूत - एरे](../../../../translated_images/webdev101-js-arrays.439d7528b8a294558d0e4302e448d193f8ad7495cc407539cc81f1afe904b470.ne.png) > स्केच नोट [Tomomi Imura](https://twitter.com/girlie_mac) द्वारा ## प्रि-लेक्चर क्विज [प्रि-लेक्चर क्विज](https://ff-quizzes.netlify.app/web/quiz/13) यो पाठले जाभास्क्रिप्टको आधारभूत कुराहरू समेट्छ, जुन वेबमा अन्तरक्रियात्मकता प्रदान गर्ने भाषा हो। यस पाठमा, तपाईंले एरे र लूपहरूको बारेमा सिक्नुहुनेछ, जसले डाटालाई हेरफेर गर्न प्रयोग गरिन्छ। [![एरे](https://img.youtube.com/vi/1U4qTyq02Xw/0.jpg)](https://youtube.com/watch?v=1U4qTyq02Xw "एरे") [![लूपहरू](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "लूपहरू") > 🎥 माथिका तस्बिरहरूमा क्लिक गरेर एरे र लूपहरूको बारेमा भिडियो हेर्नुहोस्। > तपाईं यो पाठ [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-arrays/?WT.mc_id=academic-77807-sagibbon) मा लिन सक्नुहुन्छ! ## एरे डाटासँग काम गर्नु कुनै पनि भाषाको लागि सामान्य कार्य हो, र जब डाटा संरचनात्मक ढाँचामा व्यवस्थित हुन्छ, जस्तै एरे, यो कार्य धेरै सजिलो हुन्छ। एरेको साथमा, डाटा सूची जस्तै संरचनामा भण्डारण गरिन्छ। एरेको एउटा प्रमुख फाइदा भनेको एउटै एरेमा विभिन्न प्रकारका डाटा भण्डारण गर्न सक्नु हो। ✅ एरेहरू हाम्रो वरिपरि नै छन्! के तपाईं कुनै वास्तविक जीवनको उदाहरण सोच्न सक्नुहुन्छ, जस्तै सोलार प्यानल एरे? एरेको लागि सिन्ट्याक्स भनेको वर्ग कोष्ठकहरूको जोडी हो। ```javascript let myArray = []; ``` यो एउटा खाली एरे हो, तर एरेहरू पहिले नै डाटाले भरिएको अवस्थामा घोषणा गर्न सकिन्छ। एरेमा धेरै मानहरूलाई अल्पविरामले छुट्याइन्छ। ```javascript let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"]; ``` एरेका मानहरूलाई **इन्डेक्स** भनिने अद्वितीय मान असाइन गरिन्छ, जुन एरेको सुरुवातबाटको दूरीको आधारमा पूर्णांकको रूपमा तोकिन्छ। माथिको उदाहरणमा, स्ट्रिङ मान "Chocolate" को इन्डेक्स 0 छ, र "Rocky Road" को इन्डेक्स 4 छ। इन्डेक्सलाई वर्ग कोष्ठकसँग प्रयोग गरेर एरेका मानहरू पुनःप्राप्त, परिवर्तन, वा सम्मिलित गर्न सकिन्छ। ✅ के तपाईंलाई आश्चर्य लाग्छ कि एरेहरू शून्य इन्डेक्सबाट सुरु हुन्छन्? केही प्रोग्रामिङ भाषाहरूमा, इन्डेक्सहरू 1 बाट सुरु हुन्छन्। यसको बारेमा रोचक इतिहास [Wikipedia](https://en.wikipedia.org/wiki/Zero-based_numbering) मा पढ्न सक्नुहुन्छ। ```javascript let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"]; iceCreamFlavors[2]; //"Vanilla" ``` तपाईं इन्डेक्स प्रयोग गरेर मान परिवर्तन गर्न सक्नुहुन्छ, यसरी: ```javascript iceCreamFlavors[4] = "Butter Pecan"; //Changed "Rocky Road" to "Butter Pecan" ``` र तपाईं कुनै निश्चित इन्डेक्समा नयाँ मान थप्न सक्नुहुन्छ, यसरी: ```javascript iceCreamFlavors[5] = "Cookie Dough"; //Added "Cookie Dough" ``` ✅ एरेमा मानहरू थप्नको लागि array.push() जस्ता एरे अपरेटरहरू प्रयोग गर्नु सामान्य तरिका हो। एरेमा कति वस्तुहरू छन् भनेर पत्ता लगाउन, `length` प्रोपर्टी प्रयोग गर्नुहोस्। ```javascript let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"]; iceCreamFlavors.length; //5 ``` ✅ आफैं प्रयास गर्नुहोस्! आफ्नो ब्राउजरको कन्सोल प्रयोग गरेर आफ्नै एरे सिर्जना र हेरफेर गर्नुहोस्। ## लूपहरू लूपहरूले हामीलाई पुनरावृत्त वा **पुनरावृत्ति हुने** कार्यहरू गर्न अनुमति दिन्छ, जसले धेरै समय र कोड बचत गर्न सक्छ। प्रत्येक पुनरावृत्तिमा भिन्न भिन्न चर, मान, र सर्तहरू हुन सक्छन्। जाभास्क्रिप्टमा विभिन्न प्रकारका लूपहरू छन्, र तिनीहरू सबैमा साना भिन्नताहरू छन्, तर मुख्यतः एउटै काम गर्छन्: डाटामा लूप गर्नु। ### For लूप `for` लूपले पुनरावृत्त गर्न 3 भागहरू आवश्यक पर्छ: - `counter` एउटा भेरिएबल, जुन सामान्यतया पुनरावृत्तिको संख्या गन्ने नम्बरबाट सुरु हुन्छ। - `condition` एउटा अभिव्यक्ति, जसले तुलना अपरेटरहरू प्रयोग गरेर `false` हुँदा लूप रोक्छ। - `iteration-expression` प्रत्येक पुनरावृत्तिको अन्त्यमा चल्छ, सामान्यतया काउन्टर मान परिवर्तन गर्न प्रयोग गरिन्छ। ```javascript // Counting up to 10 for (let i = 0; i < 10; i++) { console.log(i); } ``` ✅ यो कोड ब्राउजरको कन्सोलमा चलाउनुहोस्। काउन्टर, सर्त, वा पुनरावृत्ति अभिव्यक्तिमा साना परिवर्तन गर्दा के हुन्छ? के तपाईं यसलाई उल्टो चलाएर काउन्टडाउन बनाउन सक्नुहुन्छ? ### While लूप `for` लूपको सिन्ट्याक्सभन्दा फरक, `while` लूपले केवल एउटा सर्त आवश्यक पर्छ, जसले सर्त `false` हुँदा लूप रोक्छ। लूपमा सर्तहरू सामान्यतया अन्य मानहरू जस्तै काउन्टरहरूमा निर्भर हुन्छन्, र लूपको क्रममा व्यवस्थापन गर्नुपर्छ। काउन्टरहरूको सुरुवात मान लूप बाहिर सिर्जना गर्नुपर्छ, र सर्त पूरा गर्न कुनै पनि अभिव्यक्तिहरू, काउन्टर परिवर्तन सहित, लूपभित्र कायम गर्नुपर्छ। ```javascript //Counting up to 10 let i = 0; while (i < 10) { console.log(i); i++; } ``` ✅ तपाईं किन for लूपको सट्टा while लूप रोज्नुहुन्छ? StackOverflow मा १७ हजार दर्शकहरूले पनि यही प्रश्न गरेका थिए, र केही विचारहरू [तपाईंलाई चाखलाग्दो लाग्न सक्छ](https://stackoverflow.com/questions/39969145/while-loops-vs-for-loops-in-javascript)। ## लूपहरू र एरेहरू एरेहरू प्रायः लूपहरूसँग प्रयोग गरिन्छ किनभने धेरै सर्तहरूलाई लूप रोक्न एरेको लम्बाइ आवश्यक पर्छ, र इन्डेक्स पनि काउन्टर मान हुन सक्छ। ```javascript let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"]; for (let i = 0; i < iceCreamFlavors.length; i++) { console.log(iceCreamFlavors[i]); } //Ends when all flavors are printed ``` ✅ आफ्नो ब्राउजरको कन्सोलमा आफ्नै एरे बनाएर त्यसमा लूप गर्ने अभ्यास गर्नुहोस्। --- ## 🚀 चुनौती for र while लूपहरू बाहेक एरेहरूमा लूप गर्न अन्य तरिकाहरू पनि छन्। [forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach), [for-of](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/for...of), र [map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) जस्ता तरिकाहरू छन्। आफ्नो एरे लूपलाई यी प्रविधिहरू मध्ये कुनै एक प्रयोग गरेर पुनःलेखन गर्नुहोस्। ## पोस्ट-लेक्चर क्विज [पोस्ट-लेक्चर क्विज](https://ff-quizzes.netlify.app/web/quiz/14) ## समीक्षा र आत्म-अध्ययन जाभास्क्रिप्टमा एरेहरूसँग धेरै विधिहरू संलग्न छन्, जुन डाटा हेरफेरका लागि अत्यन्त उपयोगी छन्। [यी विधिहरूको बारेमा पढ्नुहोस्](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) र आफ्नो सिर्जना गरेको एरेमा केही विधिहरू (जस्तै push, pop, slice, र splice) प्रयोग गरेर प्रयास गर्नुहोस्। ## असाइनमेन्ट [एरेमा लूप गर्नुहोस्](assignment.md) **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।