מערכי JavaScript : הבנת להפחית פונקציה
תחביר
arr.reduce(callbackFunction, [initialValue])
מה מפחית לעשות?
מנמיכים הם פונקציה כי לולאות באמצעות מערך.
תפעול יכול להתבצע על המערך באמצעות פונקציית callback.
בתום פעולות על מערך, להפחית מחזירה ערך יחיד
מנמיכים ניתן להשתמש, לדוגמה, להסתכם עגלת קניות
דוגמא
בואו ARR = [1,2,3,4,5];
arr.reduce( (מַצבֵּר, ערך נוכחי, currentIndex, מַעֲרָך) => {
//כמה פעולות;
להחזיר משהו;
});
לפונקציית הקריאה
פונקציית callback מופעלת עבור כל אלמנט במערך, חולף 4 ויכוחים, המועברים על ידי הפונקציה להקטין.
אלה 4 טיעונים אז ניתן להשתמש ב פונקציית callback שלנו.
לוקח ארבעה טיעונים
- מַצבֵּר – האלמנט הראשון של המערך על הלולאה הראשונה או הערך ראשוני אם סופק. אז הערך המוחזר של הלולאה הקודמת.
- ערך נוכחי – האלמנט הנוכחי במערך. התחלות מהרכיב השני כלומר מערך. ARR[1], כאשר טענת הערך הראשונית היא לא עברה. אם הטיעון הערך הראשוני מועבר אז הערך הנוכחי מתחיל מהרכיב -1 ב ARR מערך[0].
- currentIndex – המדד של האלמנט הנוכחי.
- מַעֲרָך – המערך כולו.
למשל עבודה
בואו ARR = [1,2,3,4,5]; arr.reduce( (מַצבֵּר, ערך נוכחי, currentIndex, מַעֲרָך) => { console.log(`מצברים (על לולאה 1, מצברים הוא ARR[0], אז זה הוא הערך המוחזר של הלולאה הקודמת): ${מַצבֵּר}`); console.log(`currentValue (לולאות באמצעות מערך, החל מהשעה ARR[1]): ${ערך נוכחי}`); console.log(`currentIndex: ${currentIndex}`); console.log(`מערך: ${מַעֲרָך}`); console.log('---'); מצברי החזרה + ערך נוכחי; } );
תְפוּקָה
מַצבֵּר (על לולאה 1, מצברים הוא ARR[0], אז זה הוא הערך המוחזר של הלולאה הקודמת): 1 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[1]): 2 currentIndex: 1 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר (על לולאה 1, מצברים הוא ARR[0], אז זה הוא הערך המוחזר של הלולאה הקודמת): 3 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[1]): 3 currentIndex: 2 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר (על לולאה 1, מצברים הוא ARR[0], אז זה הוא הערך המוחזר של הלולאה הקודמת): 6 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[1]): 4 currentIndex: 3 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר (על לולאה 1, מצברים הוא ARR[0], אז זה הוא הערך המוחזר של הלולאה הקודמת): 10 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[1]): 5 currentIndex: 4 מַעֲרָך: 1,2,3,4,5 ---
מתן הערך הראשוני
המפרט את הפרמטר השני (ערך התחלתי) בפונקציה להפחית יגרום initialValue יועבר ב כויכוח מצברים על הלולאה הראשונה.
שימו לב הערך הנוכחי על הלולאה -1 מתחיל כעת את האלמנט הראשון של המערך
למשל עבודה
בואו ARR = [1,2,3,4,5]; arr.reduce( (מַצבֵּר, ערך נוכחי, currentIndex, מַעֲרָך) => { console.log(`מצברים ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): ${מַצבֵּר}`); console.log(`currentValue (לולאות באמצעות מערך, החל מהשעה ARR[0]): ${ערך נוכחי}`); console.log(`currentIndex: ${currentIndex}`); console.log(`מערך: ${מַעֲרָך}`); console.log('---'); מצברי החזרה + ערך נוכחי; }, 0 );
תְפוּקָה
מַצבֵּר ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): 0 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[0]): 1 currentIndex: 0 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): 1 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[0]): 2 currentIndex: 1 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): 3 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[0]): 3 currentIndex: 2 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): 6 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[0]): 4 currentIndex: 3 מַעֲרָך: 1,2,3,4,5 --- מַצבֵּר ( על הלולאה 1, זהו הערך הראשוני, אז הערך המוחזר של הלולאה הקודמת): 10 ערך נוכחי (לולאות באמצעות מערך, החל מהשעה ARR[0]): 5 currentIndex: 4 מַעֲרָך: 1,2,3,4,5 ---
