سؤال

ما هو الفرق بين..في كل..في البيانات في جافا سكريبت ؟ هل هناك فرق دقيق لا يعرف أو هو نفسه و كل متصفح له اسم مختلف ؟

هل كانت مفيدة؟

المحلول

"لكل...في" تتكرر متغير معين على كل القيم من الكائن المحدد خصائص.

على سبيل المثال:

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;
}
print(sum); // prints "26", which is 5+13+8

المصدر

"أجل... في" تتكرر متغير معين على جميع خصائص كائن في النظام التعسفي.

على سبيل المثال:

function show_props(obj, objName) {
   var result = "";
   for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "\n";
   }
   return result;
}

المصدر


ملاحظة 03.2013, for each... in الحلقات إهمال."الجديدة" جملة أوصت شبكة "مدن" for... of.

نصائح أخرى

وهذه المظاهرة يجب توضيح نأمل الفرق.

var myObj = {
    a : 'A',
    b : 'B',
    c : 'C'
};
for each (x in myObj) {
    alert(x);        // "A", "B", "C"
}
for (x in myObj) {
    alert(x);        // "a", "b", "c"
    alert(myObj[x]); // "A", "B", "C"
}

وقراءة وثائق MDC ممتازة.

أولا عبارة عن وضعها الطبيعي حلقات على مجموعات وبشكل تعسفي على خصائص الكائن.

<اقتباس فقرة>   

وألف ل... في حلقة لا تكرار عبر المدمج في الممتلكات. وتشمل هذه جميع طرق المدمج في الأشياء، مثل طريقة indexOf سلسلة أو أسلوب toString الكائن. ومع ذلك، فإن حلقة أعاد على كل الخصائص المعرفة من قبل المستخدم (بما في ذلك أي الكتابة فوق المدمج في خصائص).

     

وألف ل... في بالتكرار حلقة على خصائص كائن في النظام التعسفي. إذا تم تعديل خاصية في التكرار واحد ثم زار في وقت لاحق، فإن قيمة كشفها بواسطة حلقة تكون قيمتها في ذلك الوقت في وقت لاحق. لن ثم يتم زار الممتلكات التي يتم حذفها قبل أن يتم زار في وقت لاحق. وأضافت خصائص الكائن على التكرار الذي يحدث قد يكون إما بزيارة أو حذفت من التكرار. بشكل عام فإنه من الأفضل عدم إضافة أو تعديل أو إزالة خصائص من الكائن خلال التكرار، وغيرها من الممتلكات التي يجري حاليا بزيارة ل. ليس هناك ما يضمن أم لا سيتم زار خاصية المضافة، ما إذا كان سيتم زار خاصية تعديلها قبل أو بعد تعديله، أو ما إذا كان سيتم زار خاصية حذف قبل أن يتم حذفه.

الأخير يسمح لك حلقة على خصائص الكائن.

<اقتباس فقرة>   

وبالتكرار متغير محدد على كل القيم من خصائص الكائن. لكل خاصية مميزة، يتم تنفيذ بيان محدد.

وبالإضافة إلى إجابات أخرى، أن نضع في اعتبارنا أن for each...in ليست جزءا من المعيار ECMA وأيضا لا يتم تضمينها في في الطبعة القادمة 3.1 . وقد عرض في جافا سكريبت 1.6، وهو من ECMAScript3 من قبل مؤسسة موزيلا.

ووفقا للصفحة ويكيبيديا مرتبط، انها نفذت فقط في فايرفوكس 1.5+ و 3.x من Safari (+؟).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top