JavaScript : ما الافضل للتكرار For أو Object.keys وما هي الأسرع في تحميل البيانات وأين يكمن الاختلاف؟

السلام عليكم،

المرجوا المساعدة بالجواب عن سؤالي حول الجافاسكريبت:

ماهي افضل دالة للتكرار هل عبر استعمال For او Object.keys وماهي الاسرع وأين يكمن الاختلاف، بحث ولم اجد ما يشفي غليلي :/

المثال الأول : For Loop

for (var i=0; i<data.entry.length; i++) {
    var thumbnail = data.entry[i].media.url,
        title = data.entry[i].title,
        summary = data.entry[i].summary,
        author = data.entry[i].author[0].name,
        comments = data.entry[i].thr;
};

المثال الثاني : Object.keys

Object.keys(data.entry).forEach(function(i){
    var thumbnail = data.entry[i].media.url,
        title = data.entry[i].title,
        summary = data.entry[i].summary,
        author = data.entry[i].author[0].name,
        comments = data.entry[i].thr;
});

غالبا ما كنت استعمال ال For Loop ومؤخرا وضعت شرحا حوال ال JSON FEED API لكن هنالك شخص رأى الشرح ونصحني باستعمال Object.keys لانها اسرع بدل ال For، وفعلا جربتها لكن لم الاحظ اي اختلاف في السرعة وبحث حول الامر ولم اجد ما الفرق بينهما بالضبط فهل هنالك من يمكنه المساعدة؟


التعليق السابق

الخطأ الثاني سببه أنّك تعرّف متغيّرًا بالكلمة var داخل حلقة for، بينما يفضل نقله لأعلى الدالة الّتي تحوي الحلقة، لأنّ المتغيّرات من نوع var نطاقها هو نطاق الدالة function-scoped وليس القطعة block-scoped، عمليًّا لن تجد فرقًا، ولكن فهمك لمجال المتغير سيساعدك في تجنب مشكلات غريبة قد لا تفهم سببها دون فهم طبيعة المجالات في JavaScript.