কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্ট অ্যারে ইটারেশনে for...in লুপ কেন বッド আইডিয়া?

বেশিরভাগ কেসে নরমাল for লুপ ব্যবহার করা ভালো, for...in লুপের চেয়ে। কারণ for...in লুপ ইন্ডেক্স রিটার্ন করে এবং খালি ইন্ডেক্সগুলো ইগনোর করে, কিন্তু নরমাল for লুপ ভ্যালু দেখায় এবং খালি ইন্ডেক্সে undefined দেখায় যাতে ডেভেলপার বিভ্রান্ত হয় না।

সিনট্যাক্স

// for...in লুপ
for (var x in array) { /* code */ }

// নরমাল for লুপ
for (var i = 0; i < array.length; i++) { /* code */ }

উদাহরণ-১: for...in লুপ (ইন্ডেক্স দেখায়, গ্যাপ ইগনোর)

<html> <body> 
<script> 
  var num = [1, 2, 3, 4, 5];
  num[7] = 7; // ইন্ডেক্স ৫, ৬ খালি রইল
  
  for (var x in num) {
    document.write(x);
    document.write("</br>");
  }
</script> 
</body> </html>

আউটপুট

0 1 2 3 4 7

ইন্ডেক্স ৫ এবং ৬ স্কিপ হয়ে গেলো। ডেভেলপার ভাবতে পারে অ্যারেতে ৬ এলিমেন্ট আছে, কিন্তু আসলে ৮টি স্লট আছে।

উদাহরণ-২: নরমাল for লুপ (ভ্যালু দেখায়, গ্যাপে undefined)

<html> <body> 
<script> 
  var num = [1, 2, 3, 4, 5];
  num[7] = 7;
  
  for (var i = 0; i < num.length; i++) {
    document.write(num[i]);
    document.write("</br>");
  }
</script> 
</body> </html>

আউটপুট

1 2 3 4 5 undefined undefined 7

অন্যান্য সমস্যা

  • for...in ইনহেরিটেড প্রপার্টিও ইটারেট করে (প্রোটোটাইপ চেইন থেকে)
  • অ্যারে ইটারেশনের জন্য for...of (ES6) বা forEach, map, for লুপ ভালো
  • for...in অবজেক্টের কী ইটারেট করার জন্য উপযুক্ত
  1. JavaScript-এ For Loops: ক্লাসিক, for...in এবং for...of

  2. জাভাস্ক্রিপ্টে for...of লুপ ব্যাখ্যা

  3. জাভাস্ক্রিপ্ট অবজেক্টের অ্যারেতে অ্যারে মেথডগুলো ব্যবহার করা

  4. জাভাস্ক্রিপ্টে ফর লুপ দিয়ে খালি অবজেক্টে প্রোপার্টি সেট করা