for...in और for...of लूप्स के बीच अंतर
दोनों लूप किसी चीज़ पर पुनरावृति करते हैं। उनके बीच मुख्य अंतर यह है कि वे किस पर पुनरावृति करते हैं।
1) for...in लूप
यह लूप मनमाने क्रम में ऑब्जेक्ट की एन्यूरेबल प्रॉपर्टीज पर पुनरावृति करता है। यह केवल प्रॉपर्टीज की परवाह करता है, मानों की नहीं।
निम्नलिखित उदाहरण में for...in लूप का उपयोग करके सरणी की प्रॉपर्टीज पर पुनरावृति की जाती है। चूंकि यह एक सरणी है, इंडेक्स एक महत्वपूर्ण प्रॉपर्टी है इसलिए प्रत्येक तत्व का इंडेक्स पुनरावृत्त होगा और आउटपुट में प्रदर्शित होगा। इंडेक्स के अलावा कुछ विरासत में मिली प्रॉपर्टीज जैसे "inherProp2", "inherProp1" भी प्रदर्शित होती हैं।
उदाहरण-1
<html> <body> <script> Object.prototype.inherProp1 = function() {}; Array.prototype.inherProp2= function() {}; var org = ["Apple", "Microsoft", "Tesla"] org.anotherOrg = "solarCity"; for (var key in org) { document.write(key); document.write("</br>"); } </script> </body> </html>
आउटपुट
0 1 2 anotherOrg // स्वयं की प्रॉपर्टी inherProp2 // विरासत में मिली प्रॉपर्टी inherProp1 // विरासत में मिली प्रॉपर्टी
निम्नलिखित उदाहरण में, चूंकि hasOwnProperty() का उपयोग किया गया है, केवल स्वयं की प्रॉपर्टीज जैसे इंडेक्स और अन्य प्रॉपर्टीज प्रदर्शित होती हैं जबकि विरासत में मिली प्रॉपर्टीज जैसे "inherProp1" और "inherProp2" प्रदर्शित नहीं होतीं।
उदाहरण-2
<html> <body> <script> Object.prototype.objCustom = function() {}; Array.prototype.arrCustom = function() {}; var org = ["Apple", "Microsoft", "Tesla"] org.anotherOrg = "solarCity"; for (var i in org) { if (org.hasOwnProperty(i)) { document.write(i); document.write("</br>"); } } </script> </body> </html>
आउटपुट
0 1 2 anotherOrg
2) for...of लूप
for...in लूप के विपरीत, for...of लूप उन मानों पर पुनरावृति करता है जिन्हें ऑब्जेक्ट पुनरावृति के लिए परिभाषित करता है।
निम्नलिखित उदाहरण में for...of लूप का उपयोग करके 'Apple', 'Microsoft' और 'Tesla' जैसी प्रॉपर्टीज आउटपुट में प्रदर्शित होती हैं।
उदाहरण
<html> <body> <script> var org = ["Apple", "Microsoft", "Tesla"] for (var key of org) { document.write(key); document.write("</br>"); } </script> </body> </html>
आउटपुट
Apple Microsoft Tesla