জাভাস্ক্রিপ্টে অ্যারে ইটারেশনে 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
লক্ষ্য করুন যে অ্যারের দৈর্ঘ্য ৫, কিন্তু এটি অ্যারেতে শুধু একটি ভ্যালু ওভার ইটারেট করে।
এটি হয় কারণ for-in স্টেটমেন্টের উদ্দেশ্য হলো অবজেক্ট প্রপার্টি এনিউমারেট করা। এই স্টেটমেন্ট প্রোটোটাইপ চেইনে উপরে যাবে, ইনহেরিটেড প্রপার্টিও এনিউমারেট করবে, যা কখনো কখনো অনিচ্ছাকৃত।