जावास्क्रिप्ट में ऐरे को कैसे ट्रैवर्स करें: forEach, for...of और अन्य विधियाँ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

"ऐरे को ट्रैवर्स करना" क्यों एक बुनियादी बात है जिसे आपको कंठस्थ करना चाहिए

\n\n

कल्पना करें: आपके पास छात्रों की एक सूची, एक शॉपिंग कार्ट या संख्याओं का एक सेट है। आपको प्रत्येक तत्व के साथ कुछ करना है: नाम प्रिंट करना, योग निकालना, केवल वयस्कों को फ़िल्टर करना। जावास्क्रिप्ट में इसके लिए कई तरीके हैं, और उनमें से सबसे लोकप्रिय है forEach लूप।

\n\n

Stack Overflow पर "Loop (for each) over an array in JavaScript" प्रश्न ने हज़ारों व्यूज़ प्राप्त किए हैं। इसका मतलब है कि अनुभवी डेवलपर्स भी कभी-कभी बारीकियों में भ्रमित हो जाते हैं। हम सब कुछ स्पष्ट रूप से समझाएंगे: क्लासिक for से लेकर आधुनिक for...of और शक्तिशाली forEach तक। आप जानेंगे कि कब किस विधि का उपयोग करना है, और ऐरे से डरना छोड़ देंगे।

\n\n

विधि #1: क्लासिक for लूप — सभी ट्रैवर्सल का दादा

\n\n

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

\n\n
const fruits = ['सेब', 'केला', 'संतरा'];
for (let i = 0; i < fruits.length; i++) {
console.log(`फल #${i + 1}: ${fruits[i]}`);
}
\n\n

लाभ: पूर्ण नियंत्रण, break और continue का उपयोग कर सकते हैं।
\nनुकसान: वर्बोज़, इंडेक्स में गलती करना आसान।

\n\n

क्लासिक for का उपयोग कब करें

\n
    \n
  • ट्रैवर्सल को जल्दी रोकने की आवश्यकता है (जैसे, किसी तत्व की खोज करते समय)।
  • \n
  • इंडेक्स तक पहुँच आवश्यक है (केवल मान तक नहीं)।
  • \n
  • आप मल्टीडायमेंशनल ऐरे के साथ काम कर रहे हैं।
  • \n
\n\n

विधि #2: forEach — जावास्क्रिप्ट में ट्रैवर्सल का राजा

\n\n

यह विधि 90% मामलों में "Loop (for each) over an array in JavaScript" प्रश्न का उत्तर है। इसे सीधे ऐरे पर कॉल किया जाता है और यह एक कॉलबैक फ़ंक्शन लेता है, जो प्रत्येक तत्व के लिए निष्पादित होता है।

\n\n
const fruits = ['सेब', 'केला', 'संतरा'];
fruits.forEach(function(fruit, index) {
console.log(`फल #${index + 1}: ${fruit}`);
});

// एरो फ़ंक्शन के साथ भी ऐसा ही (आधुनिक शैली):
fruits.forEach((fruit, index) => {
console.log(`फल #${index + 1}: ${fruit}`);
});
\n\n

महत्वपूर्ण: forEach एक नया ऐरे नहीं लौटाता (map के विपरीत)। यह केवल प्रत्येक तत्व के लिए क्रिया करता है। और हाँ, break और continue यहाँ काम नहीं करते — यदि लूप को रोकना है, तो for...of या क्लासिक for का उपयोग करें।

\n\n

forEach कॉलबैक फ़ंक्शन के पैरामीटर

\n
    \n
  • पहला पैरामीटर — ऐरे का वर्तमान तत्व (आवश्यक)।
  • \n
  • दूसरा पैरामीटर — तत्व का इंडेक्स (वैकल्पिक)।
  • \n
  • तीसरा पैरामीटर — स्वयं ऐरे (शायद ही कभी आवश्यक)।
\n\n
[10, 20, 30].forEach((value, index, array) => {
console.log(`ऐरे [${array}] में पोज़ीशन ${index} पर तत्व ${value}`);
});
\n\n

विधि #3: for...of — आधुनिक और सुरुचिपूर्ण

\n\n

यह ES6 (2015) में आया और तुरंत डेवलपर्स को पसंद आया। यह न केवल ऐरे के साथ, बल्कि किसी भी इटरेबल ऑब्जेक्ट (स्ट्रिंग, Set, Map) के साथ काम करता है।

\n\n
const fruits = ['सेब', 'केला', 'संतरा'];
for (const fruit of fruits) {
console.log(`फल: ${fruit}`);
}
\n\n

मुख्य लाभ: break और continue का उपयोग कर सकते हैं। और कोड साफ और पढ़ने योग्य दिखता है।

\n\n

for...of में इंडेक्स कैसे प्राप्त करें

\n

यदि इंडेक्स चाहिए, तो entries() विधि का उपयोग करें:

\n\n
for (const [index, fruit] of fruits.entries()) {
console.log(`फल #${index + 1}: ${fruit}`);
}
\n\n

विधि #4: map — जब एक नया ऐरे बनाना हो

\n\n

यदि आप केवल ट्रैवर्स नहीं करना चाहते, बल्कि प्रत्येक तत्व को रूपांतरित करना चाहते हैं और समान लंबाई का एक नया ऐरे प्राप्त करना चाहते हैं, तो m

ब्लॉग

पुस्तक अनुशंसाएँ