Les matrius de JavaScript : La comprensió de la funció de reduir
sintaxi
arr.reduce(callbackFunction, [initialValue])
El que sí que redueix fer?
Reduir és una funció que els bucles a través d'una matriu.
Les operacions poden ser realitzades en la matriu a través d'una funció de devolució de trucada.
Al final de les operacions de la matriu, reduir retorna un sol valor
Reduir pot ser utilitzat, per exemple, a un total d'un carret de la compra
exemple
deixar que arr = [1,2,3,4,5];
arr.reduce( (acumulador, valor actual, currentIndex, formació) => {
//algunes operacions;
tornar alguna cosa;
});
La funció de devolució
La funció de devolució de trucada s'invoca per a cada element de la matriu, passant 4 arguments que es passen a per la funció de reduir.
Aquests 4 arguments es poden utilitzar en la nostra funció de devolució de trucada.
Pren quatre arguments
- acumulador – El primer element de la matriu en el primer bucle o valor inicial si es subministra. A continuació, el valor retornat del bucle anterior.
- valor actual – L'element actual a la matriu. Comença des del segon element de la matriu és a dir,. arr[1], quan no es passa l'argument de valor inicial. Si l'argument de valor inicial es passa el valor vigent en aquell moment s'inicia des de la primera element de la matriu arr[0].
- currentIndex – L'índex de l'element actual.
- formació – Tota la matriu.
Exemple de Treball
deixar que arr = [1,2,3,4,5]; arr.reduce( (acumulador, valor actual, currentIndex, formació) => { console.log(`acumulador (L'1 de bucle, acumulador és arr[0], llavors és el valor retornat del bucle anterior): ${acumulador}`); console.log(`CurrentValue (Bucles través de la matriu, a partir d'arr[1]): ${valor actual}`); console.log(`currentIndex: ${currentIndex}`); console.log(array `: ${formació}`); console.log('---'); acumulador d'retorn + valor actual; } );
sortida
acumulador (L'1 de bucle, acumulador és arr[0], llavors és el valor retornat del bucle anterior): 1 valor actual (Bucles través de la matriu, a partir d'arr[1]): 2 currentIndex: 1 formació: 1,2,3,4,5 --- acumulador (L'1 de bucle, acumulador és arr[0], llavors és el valor retornat del bucle anterior): 3 valor actual (Bucles través de la matriu, a partir d'arr[1]): 3 currentIndex: 2 formació: 1,2,3,4,5 --- acumulador (L'1 de bucle, acumulador és arr[0], llavors és el valor retornat del bucle anterior): 6 valor actual (Bucles través de la matriu, a partir d'arr[1]): 4 currentIndex: 3 formació: 1,2,3,4,5 --- acumulador (L'1 de bucle, acumulador és arr[0], llavors és el valor retornat del bucle anterior): 10 valor actual (Bucles través de la matriu, a partir d'arr[1]): 5 currentIndex: 4 formació: 1,2,3,4,5 ---
Proporcionar el valor inicial
Especificació del segon paràmetre (valor inicial) en la funció de reduir causarà initialValue que es passa com a argument acumulador en el primer bucle.
Tingueu en compte que el valor actual al 1er bucle d'ara s'inicia en el primer element de la matriu
Exemple de Treball
deixar que arr = [1,2,3,4,5]; arr.reduce( (acumulador, valor actual, currentIndex, formació) => { console.log(`acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): ${acumulador}`); console.log(`CurrentValue (Bucles través de la matriu, a partir d'arr[0]): ${valor actual}`); console.log(`currentIndex: ${currentIndex}`); console.log(array `: ${formació}`); console.log('---'); acumulador d'retorn + valor actual; }, 0 );
sortida
acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): 0 valor actual (Bucles través de la matriu, a partir d'arr[0]): 1 currentIndex: 0 formació: 1,2,3,4,5 --- acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): 1 valor actual (Bucles través de la matriu, a partir d'arr[0]): 2 currentIndex: 1 formació: 1,2,3,4,5 --- acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): 3 valor actual (Bucles través de la matriu, a partir d'arr[0]): 3 currentIndex: 2 formació: 1,2,3,4,5 --- acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): 6 valor actual (Bucles través de la matriu, a partir d'arr[0]): 4 currentIndex: 3 formació: 1,2,3,4,5 --- acumulador ( En el primer de bucle, aquest és el valor inicial, a continuació, el valor retornat del bucle anterior): 10 valor actual (Bucles través de la matriu, a partir d'arr[0]): 5 currentIndex: 4 formació: 1,2,3,4,5 ---
