يمكن عمومًا استبدال الاستخدام مثل for(var i=0;i<len;i++) بـ for in.
على سبيل المثال:
انسخ رمز الكود كما يلي:
var a = ["a"، "b"، "c"]؛
ل(فار إل في أ){
تنبيه(أ[إل]);
}
هذا لتعداد جميع العناصر الموجودة في a. بالطبع، يمكن استخدام المثال أعلاه
انسخ رمز الكود كما يلي:
for(var i=0,len=a. length;i<len;i++){
تنبيه(أ[i]);
}
يتم استخدام هذه الطريقة للإدراج في حلقة، ولكن في بعض الأحيان قد لا تعمل هذه الطريقة.
على سبيل المثال:
انسخ رمز الكود كما يلي:
var a = {"الأول":1،"الثاني":2،"الثالث":3};
في هذا الوقت، يمكنك فقط استخدام for لاستنفاد القائمة.
يمكن الحكم على إمكانية تحديد الكائن بشكل شامل من خلال السمة propertyIsEnumerable، ويكون الوصف كما يلي:
خاصية الملكية لا تعد ولا تحصى
تُرجع قيمة منطقية تشير إلى ما إذا كانت الخاصية المحددة جزءًا من كائن وما إذا كانت الخاصية قابلة للإحصاء.
انسخ رمز الكود كما يلي:
object.propertyIsEnumerable(proName)
المعلمة
هدف
مطلوب. كائن.
اسم proName
مطلوب. قيمة سلسلة لاسم الخاصية.
يوضح
الخاصية propertyIsEnumerable ترجع صحيحًا إذا كان proName موجودًا في الكائن ويمكن تعداده باستخدام حلقة For...In. إذا لم يكن الكائن يحتوي على الخاصية المحددة أو كانت الخاصية المحددة غير قابلة للتعداد، فستُرجع الخاصية propertyIsEnumerable خطأ. عادة، الخصائص المحددة مسبقًا غير قابلة للتعداد، في حين أن الخصائص المعرفة من قبل المستخدم تكون دائمًا قابلة للتعداد.
الخاصية propertyIsEnumerable لا تأخذ بعين الاعتبار الكائنات الموجودة في سلسلة النموذج الأولي.