for...in और for...of loops के बीच अंतर
दोनों लूप किसी चीज पर पुनरावृति करते हैं। उनके बीच मुख्य अंतर यह है कि वे क्या दोहराते हैं।
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 // own property inherProp2 // inherited property inherProp1 // inherited property
निम्नलिखित उदाहरण में, चूंकि 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...in लूप, के...के लिए लूप उन मानों पर पुनरावृति करता है जिन्हें ऑब्जेक्ट परिभाषित करता है कि वे पुनरावृत्त होंगे।
निम्नलिखित उदाहरण में गुण जैसे 'Apple ', 'माइक्रोसॉफ्ट ' और 'टेस्ला ' आउटपुट में के लिए...के . का उपयोग करके प्रदर्शित होते हैं लूप।
उदाहरण
<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