JavaScript में ऐरे इटरेशन के लिए for..in लूप्स का उपयोग निम्न व्यवहार के कारण खराब विचार है:
सामान्य इटरेशन लूप्स का उपयोग करना -
उदाहरण
let arr = [] arr[4] = 5 for (let i = 0; i < arr.length; i ++) { console.log(arr[i]) }
आउटपुट
undefined undefined undefined undefined 5
यदि हमने इस ऐरे पर for in कंस्ट्रक्ट का उपयोग करके इटरेट किया होता, तो हमें मिलता:
उदाहरण
let arr = [] arr[4] = 5 for (let i in arr) { console.log(arr[i]) }
आउटपुट
5
ध्यान दें कि ऐरे की लंबाई 5 है, लेकिन यह अभी भी ऐरे में केवल एक मान पर इटरेट करता है।
ऐसा इसलिए होता है क्योंकि for-in स्टेटमेंट का उद्देश्य ऑब्जेक्ट प्रॉपर्टीज़ पर इटरेट करना है। यह स्टेटमेंट प्रोटोटाइप चेन में ऊपर जाएगा, इनहेरिटेड प्रॉपर्टीज़ पर भी इटरेट करेगा, जो कभी-कभी वांछित नहीं होता।