جافا سكريبت صالحة : فهم لحد من وظيفة
بناء الجملة
arr.reduce(callbackFunction, [initialValue])
ماذا تفعل الحد?
تقليل هي وظيفة التي حلقات عبر مجموعة.
لا يمكن أن يؤديها العمليات على مجموعة عبر دالة رد.
في نهاية العمليات على مجموعة, خفض عوائد قيمة واحدة
الحد يمكن استخدامها, فمثلا, لمجموع عربة التسوق
مثال
السماح آر = [1,2,3,4,5];
arr.reduce( (المجمع, القيمة الحالية, currentIndex, مجموعة مصفوفة) => {
//بعض العمليات;
العودة شيء;
});
وظيفة الاستدعاء
يتم استدعاء الدالة رد لكل عنصر في المصفوفة, يمر في 4 الحجج التي تم تمريرها من قبل في وظيفة لحد.
هذه 4 الحجج ثم يمكن استخدامها في وظيفة رد الاتصال بنا.
يستغرق أربع حجج
- المجمع – العنصر الأول للصفيف على الحلقة الأولى أو القيمة الأولية إذا زودت. ثم القيمة التي تم إرجاعها من الحلقة السابقة.
- القيمة الحالية – العنصر الحالي في الصفيف. يبدأ من العنصر الثاني في أي مجموعة. وصول[1], عندما لا يتم تمرير حجة القيمة الأولية. تبدأ إذا تم تمرير حجة القيمة الأولية القيمة ثم الحالية من العنصر 1ST في وصول مجموعة[0].
- currentIndex – مؤشر العنصر الحالي.
- مجموعة مصفوفة – مجموعة كاملة.
العمل مثال
السماح آر = [1,2,3,4,5]; arr.reduce( (المجمع, القيمة الحالية, currentIndex, مجموعة مصفوفة) => { console.log(`اللاسلكي (في حلقة 1ST, تراكم هو وصول[0], ثم هو القيمة التي تم إرجاعها من الحلقة السابقة): ${المجمع}`); console.log(`currentValue (حلقات عبر مجموعة, بدءا من وصول[1]): ${القيمة الحالية}`); console.log(`currentIndex: ${currentIndex}`); console.log(`مجموعة: ${مجموعة مصفوفة}`); console.log('---'); تراكم عودة + القيمة الحالية; } );
انتاج |
المجمع (في حلقة 1ST, تراكم هو وصول[0], ثم هو القيمة التي تم إرجاعها من الحلقة السابقة): 1 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[1]): 2 currentIndex: 1 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع (في حلقة 1ST, تراكم هو وصول[0], ثم هو القيمة التي تم إرجاعها من الحلقة السابقة): 3 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[1]): 3 currentIndex: 2 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع (في حلقة 1ST, تراكم هو وصول[0], ثم هو القيمة التي تم إرجاعها من الحلقة السابقة): 6 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[1]): 4 currentIndex: 3 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع (في حلقة 1ST, تراكم هو وصول[0], ثم هو القيمة التي تم إرجاعها من الحلقة السابقة): 10 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[1]): 5 currentIndex: 4 مجموعة مصفوفة: 1,2,3,4,5 ---
توفير القيمة الأولية
تحديد المعلمة الثانية (القيمة البدائية) في وظيفة خفض سيسبب initialValue لتمريرها في كوسيطة تراكم على الحلقة الأولى.
لاحظ أن القيمة الحالية على الحلقة 1ST يبدأ الآن في العنصر الأول من الصفيف
العمل مثال
السماح آر = [1,2,3,4,5]; arr.reduce( (المجمع, القيمة الحالية, currentIndex, مجموعة مصفوفة) => { console.log(`اللاسلكي ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): ${المجمع}`); console.log(`currentValue (حلقات عبر مجموعة, بدءا من وصول[0]): ${القيمة الحالية}`); console.log(`currentIndex: ${currentIndex}`); console.log(`مجموعة: ${مجموعة مصفوفة}`); console.log('---'); تراكم عودة + القيمة الحالية; }, 0 );
انتاج |
المجمع ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): 0 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[0]): 1 currentIndex: 0 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): 1 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[0]): 2 currentIndex: 1 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): 3 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[0]): 3 currentIndex: 2 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): 6 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[0]): 4 currentIndex: 3 مجموعة مصفوفة: 1,2,3,4,5 --- المجمع ( على الحلقة 1ST, هذه هي القيمة الأولية, ثم القيمة التي تم إرجاعها من الحلقة السابقة): 10 القيمة الحالية (حلقات عبر مجموعة, بدءا من وصول[0]): 5 currentIndex: 4 مجموعة مصفوفة: 1,2,3,4,5 ---
