पहचान
कॉलेज में अपने समय के बाद से, मैंने जावा, जावास्क्रिप्ट, पास्कल, एबीएपी , पीएचपी, प्रोग्रेस 4 जीएल, सी / सी ++ में प्रोग्राम किया है और संभवतः कुछ अन्य भाषाएं जो मैं अभी नहीं सोच सकता हूं।
जबकि वे सभी की अपनी भाषाई पहचान है, इन भाषाओं में से प्रत्येक एक ही मूल अवधारणाओं को साझा करती है। ऐसी अवधारणाओं में प्रक्रिया / कार्य IF
, FOR
-स्टेटमेंट, -लूप, और WHILE
-लूप शामिल हैं।
एक पारंपरिक- for
लूप
एक पारंपरिक for
लूप में तीन घटक होते हैं:
- इनिशियलाइज़ेशन: लुक ब्लॉक से पहले निष्पादित पहली बार निष्पादित किया गया है
- शर्त: लूप ब्लॉक निष्पादित होने से पहले हर बार एक स्थिति की जांच करता है, और गलत होने पर लूप को छोड़ देता है
- बाद में: लूप ब्लॉक निष्पादित होने के बाद हर बार प्रदर्शन किया जाता है
इन तीन घटकों को एक ;
प्रतीक द्वारा एक दूसरे से अलग किया जाता है । इन तीन घटकों में से प्रत्येक के लिए सामग्री वैकल्पिक है, जिसका अर्थ है कि निम्नलिखित सबसे कम for
संभव लूप है:
for (;;) {
// Do stuff
}
बेशक, आपको इसे बंद करने के लिए एक- if(condition === true) { break; }
या if(condition === true) { return; }
कहीं और शामिल करना होगा for
।
आमतौर पर, हालांकि, इनिशियलाइज़ेशन का उपयोग इंडेक्स को घोषित करने के लिए किया जाता है, इस शर्त का उपयोग उस इंडेक्स की न्यूनतम या अधिकतम मूल्य के साथ तुलना करने के लिए किया जाता है, और बाद में इंडेक्स को बढ़ाने के लिए उपयोग किया जाता है:
for (var i = 0, length = 10; i < length; i++) {
console.log(i);
}
for
एक सरणी के माध्यम से पाश के लिए एक पारंपरिक लूप का उपयोग करना
एक सरणी के माध्यम से लूप करने का पारंपरिक तरीका यह है:
for (var i = 0, length = myArray.length; i < length; i++) {
console.log(myArray[i]);
}
या, यदि आप पीछे की ओर लूप करना पसंद करते हैं, तो आप ऐसा करते हैं:
for (var i = myArray.length - 1; i > -1; i--) {
console.log(myArray[i]);
}
हालाँकि, कई बदलाव संभव हैं, उदाहरण के लिए यह एक:
for (var key = 0, value = myArray[key], length = myArray.length; key < length; value = myArray[++key]) {
console.log(value);
}
... या यह एक ...
var i = 0, length = myArray.length;
for (; i < length;) {
console.log(myArray[i]);
i++;
}
... या यह एक:
var key = 0, value;
for (; value = myArray[key++];){
console.log(value);
}
जो भी सबसे अच्छा काम करता है वह काफी हद तक व्यक्तिगत स्वाद और आपके द्वारा लागू किए जाने वाले विशिष्ट उपयोग के मामले में होता है।
ध्यान दें कि इनमें से प्रत्येक विविधता सभी ब्राउज़रों द्वारा समर्थित है, जिसमें बहुत पुराने भी शामिल हैं!
एक while
पाश
for
लूप का एक विकल्प एक लूप है while
। एक सरणी के माध्यम से लूप करने के लिए, आप ऐसा कर सकते हैं:
var key = 0;
while(value = myArray[key++]){
console.log(value);
}
पारंपरिक for
छोरों की तरह , while
छोरों को ब्राउज़रों के सबसे पुराने द्वारा भी समर्थन किया जाता है।
यह भी ध्यान दें कि हर लूप को लूप के रूप में फिर से लिखा जा सकता है for
। उदाहरण के लिए, while
लूप हर्बोव इस -लूप के समान ही व्यवहार करता है for
:
for(var key = 0; value = myArray[key++];){
console.log(value);
}
For...in
तथा for...of
जावास्क्रिप्ट में, आप यह भी कर सकते हैं:
for (i in myArray) {
console.log(myArray[i]);
}
हालांकि, इसका उपयोग देखभाल के साथ किया जाना चाहिए, क्योंकि यह for
सभी मामलों में एक पारंपरिक लूप के समान व्यवहार नहीं करता है , और संभावित दुष्प्रभाव हैं जिन पर विचार करने की आवश्यकता है। देखें क्यों "इट्स ... इन" का उपयोग सरणी के साथ एक खराब विचार के लिए किया गया है? अधिक जानकारी के लिए।
एक विकल्प के रूप में for...in
, अब के लिए भी है for...of
। निम्न उदाहरण एक for...of
लूप और लूप के बीच अंतर को दर्शाता है for...in
:
var myArray = [3, 5, 7];
myArray.foo = "hello";
for (var i in myArray) {
console.log(i); // logs 0, 1, 2, "foo"
}
for (var i of myArray) {
console.log(i); // logs 3, 5, 7
}
इसके अतिरिक्त, आपको यह विचार करने की आवश्यकता है कि इंटरनेट एक्सप्लोरर का कोई संस्करण समर्थन नहीं करता है for...of
( एज 12+ करता है) और for...in
इसके लिए कम से कम इंटरनेट एक्सप्लोरर 10 की आवश्यकता होती है।
Array.prototype.forEach()
for
-लूप का एक विकल्प है Array.prototype.forEach()
, जो निम्नलिखित सिंटैक्स का उपयोग करता है:
myArray.forEach(function(value, key, myArray) {
console.log(value);
});
Array.prototype.forEach()
सभी आधुनिक ब्राउज़रों द्वारा समर्थित है, साथ ही साथ इंटरनेट एक्सप्लोरर 9 और बाद में।
पुस्तकालय
अंत में, कई उपयोगिता पुस्तकालयों की भी अपनी foreach
भिन्नता है। AFAIK, तीन सबसे लोकप्रिय हैं ये हैं:
jQuery.each()
, jQuery में :
$.each(myArray, function(key, value) {
console.log(value);
});
_.each()
, अंडरस्कोर.जे में :
_.each(myArray, function(value, key, myArray) {
console.log(value);
});
_.forEach()
, लोदश.ज में :
_.forEach(myArray, function(value, key) {
console.log(value);
});