يحدد ECMASCript5 5 طرق تكرارية للصفائف. تتلقى كل طريقة معلمتين: الوظيفة التي يتم تشغيلها على كل عنصر وكائن النطاق (اختياري) يقوم بتشغيل الوظيفة (أي القيمة التي تؤثر على هذا). تتلقى الوظائف التي تم تمريرها في هذه الطرق ثلاث معلمات: قيمة عنصر الصفيف ، وموضع العنصر في الصفيف ، وكائن المصفوفة نفسه. اعتمادًا على طريقة الاستخدام ، قد تؤثر أو لا تؤثر أو لا تؤثر قيمة الإرجاع بعد تنفيذ هذه الوظيفة على قيمة إرجاع الطريقة. هذه الطرق الخمسة التكرارية هي:
تقبل جميع الطرق التكرارية الخمسة معلمتين: الوظيفة التي يتم تشغيلها على كل عنصر ونطاق تشغيل الوظيفة (اختياري)
كل (): قم بتشغيل الوظيفة المحددة على كل عنصر في الصفيف. إذا كانت الوظيفة تُرجع صحيحًا لكل عنصر ، فإنها تُرجع صحيحًا.
Filter (): يقوم بتشغيل الوظيفة المحددة على كل عنصر في الصفيف. إرجاع مجموعة من العناصر التي ستعود بشكل صحيح.
foreach (): يقوم بتشغيل الوظيفة المحددة لكل عنصر في الصفيف. الوظيفة لا تُرجع قيمة.
MAP (): قم بتشغيل الوظيفة المحددة على كل عنصر في الصفيف. إرجاع الوظيفة المكونة من نتيجة كل استدعاء دالة.
بعض (): قم بتشغيل الوظيفة المحددة على كل عنصر في الصفيف. إذا كانت الوظيفة تُرجع بشكل صحيح ، فإنها تُرجع صحيحًا
جميع الطرق المذكورة أعلاه لن تعدل القيم الواردة في الصفيف.
في الطريقة المذكورة أعلاه ، كل () وبعض () متشابهان للغاية ، وكلاهما يستخدم للاستعلام عما إذا كان عنصر في الصفيف يفي بحالة معينة. بالنسبة لكل طريقة () ، يجب أن تُرجع الوظيفة التي تم تمريرها بشكل صحيح لكل عنصر قبل إرجاع هذه الطريقة بشكل صحيح. خلاف ذلك ، فإنه يعود خطأ. تُرجع طريقة بعض () بشكل صحيح طالما أن الدالة التي تم تمريرها تُرجع إلى عنصر في الصفيف. على سبيل المثال:
var nums = [1،2،3،4،5،4،3،2،1]
سوف يطبع الرمز أعلاه خطأ في وحدة التحكم.
var nums = [1،2،3،4،5،4،3،2،1]
الرمز أعلاه يطبع صحيح في وحدة التحكم.
فيما يلي مثال على وظيفة المرشح () ، والتي تستخدم الوظيفة المحددة لتحديد ما إذا كان هناك عنصر في الصفيف الذي تم إرجاعه. على سبيل المثال ، لإرجاع مجموعة مع جميع القيم أكبر من 2 ، يمكنك استخدام الكود التالي:
var nums = [1،2،3،4،5،4،3،2،1] // [3،4،5،4،3]
يعيد الرمز أعلاه صفيفًا يحتوي على 3 ، 4 ، 5 ، 4 ، 3 عن طريق استدعاء طريقة المرشح (). هذه الطريقة مفيدة للغاية للاستعلام عن جميع المصفوفات التي تلبي معايير معينة.
تقوم طريقة MAP () أيضًا بإرجاع صفيف ، وكل عنصر في هذه الصفيف هو نتيجة لتشغيل الوظيفة الواردة على العنصر المقابل في الصفيف الأصلي. على سبيل المثال ، يمكنك مضاعفة كل عنصر في الصفيف بمقدار 2 ثم إرجاع مجموعة من هذه المنتجات:
var nums = [1،2،3،4،5،4،3،2،1] // [2،4،6،8،10،8،6،4،2]
طريقة الخريطة () مناسبة لإنشاء صفيف يحتوي على عناصر واحدة تلو الأخرى في مجموعة أخرى.
آخر طريقة هي طريقة foreach () ، والتي تعمل فقط على تشغيل الوظيفة التي تم تمريرها على كل عنصر في الصفيف. لا تحتوي هذه الطريقة على قيمة إرجاع ، وتكرر بشكل أساسي على صفيف باستخدام حلقة من أجل. انظر المثال التالي:
var nums = [1،2،3،4،5،4،3،2،1]
يمكن أن تسهل طرق الصفيف هذه في JS بشكل كبير معالجة مهام الصفيف من خلال إجراء عمليات مختلفة.
المتصفحات التي تدعم هذه الأساليب التكرارية هي: IE9+، Firefox2+، Safari3+، Opera9.5+والكروم.
أرقام var = [1 ، 2 ، 3 ، 4 ، 5 ، 4 ، 3 ، 2 ، 1] ؛ // كل () وبعض () أكثر تشابهًا // كل عنصر () العنصر: عنصر اجتياز الحالي ، فهرس: فهرس العنصر الحالي ، صفيف: كائن الصفيف نفسه var earyresult. ALERT (earyResult) ؛ // false // some () var someresult = number.some (function (item ، index ، array) {return item> 2 ؛}) ؛ التنبيه (someresult) ؛ // true // filter var filterresult = number.filter (function (item ، index ، array) {return item> 2 ؛}) ؛ ALERT (filterResult) ؛ // [3،4،5،4،3] // map () var mapresult = number.map (function (item ، index ، array) {return (item * 2) ؛}) ؛ التنبيه (mapResult) ؛ // [2،4،6،8،10،8،6،4،2] // foreach لا يوجد فرق في الأساس من أجل حلقة var foreachresult = foreach (الوظيفة (العنصر ، الفهرس ، المصفوفة) {Alert (item)}) ؛ما سبق هو كل شيء عن هذا المقال. آمل أن أقدم لكم بعض النصائح لفهم طريقة تكرار JavaScript بشكل أفضل.