Muy bien, entonces abordamos el mapa.
y el método de filtrado
Y ahora es el momento del método único.
que los gobierna a todos, que es el método reducido.
Entonces, el método reducido es realmente el más versátil.
y el más poderoso de todos los métodos de matriz en JavaScript.
Entonces, de hecho, probablemente podríamos implementar
todos los demás métodos, simplemente usando el método reducido,
pero eso sería demasiado trabajo.
Y es por eso que tenemos todos estos otros métodos
que son mucho más fáciles de usar.
Entonces, realmente no profundizaré en el método reducido aquí,
porque podríamos pasar horas solo con este método,
pero solo les mostraré uno de los casos de uso más comunes,
que es sumar números
o, básicamente, realizar cualquier operación,
u operaciones matemáticas, con números.
Entonces, digamos que, por alguna razón,
queríamos leer todos los libros de la serie
y queríamos saber cuántas páginas tendríamos que leer.
Entonces la solución es sumar
todas las propiedades de estas páginas
de todos los libros de la serie, ¿verdad?
Y para eso podemos usar el método de reducción.
Entonces, digamos páginasTodos los libros,
y luego libros.reducir.
Ahora, el método reduce también incluye una función de devolución de llamada.
que se ejecutará para cada elemento de la matriz.
Y, como segundo argumento,
también toma un valor inicial, básicamente.
Pero antes de entrar en esto,
En realidad, comprendamos qué hace el método de reducción.
y para qué se utiliza.
Entonces se llama método de reducción.
porque el objetivo de reducir es reducir, básicamente,
toda la matriz a un solo valor.
Entonces, para resumirlo, y si lo piensas bien,
Esto es exactamente lo que estamos tratando de hacer ahora.
Entonces, queremos reducir toda la matriz
a un solo número, que es, en este caso,
el número de páginas de todos los libros combinados, ¿verdad?
Y entonces, ese segundo argumento que mencioné antes,
es, básicamente, el valor inicial
para ese valor final que queremos obtener.
Primero, queremos pasar una función.
Lo haremos en un minuto.
Y segundo, queremos ese valor inicial.
Y en este caso, ya que estamos sumando
Para todos estos valores, comenzaremos desde cero, por supuesto.
Tiene sentido, ¿verdad?
Y ahora, aquí, hablemos de la función.
eso será llamado.
Entonces, antes siempre teníamos esta función de devolución de llamada con un libro.
y luego aquí hicimos algo, ¿no?
Pero aquí, la función de devolución de llamada.
será un poco diferente.
Entonces, la función que pasamos aquí,
no sólo quedará atrapado con el elemento actual
pero también con el valor actual del acumulador.
que comienza en cero.
Todo eso suena muy confuso.
pero déjame llamar a esto, aquí,
acc, que significa acumulador,
y luego veremos, en un segundo, por qué esto tiene sentido.
Así que aquí lo que queremos devolver es este acumulador.
más páginas de libros.
Y ahora, si decimos páginas o libros,
entonces obtenemos este enorme número.
Bien, entonces entendamos qué pasó aquí,
repasando esta matriz, elemento por elemento.
Entonces, el primer elemento, nuevamente aquí,
es "El Señor de los Anillos".
Y así, en esta primera iteración,
este libro, aquí, es, por supuesto, este,
pero ¿cuál es el acumulador?
Bueno, el acumulador es, básicamente,
el valor actual del valor final
al que queremos reducir la matriz.
Entonces, básicamente, en este caso,
las páginas de todos los libros combinados, que comienza en cero.
Y así, en la primera iteración
el acumulador seguirá siendo cero.
Entonces, esta función, aquí, será llamada
para el primer elemento y luego el acumulador será cero
y el libro será el libro actual.
Y entonces sumamos el acumulador actual,
entonces las páginas o libros actuales, por así decirlo,
que sigue siendo cero más estos 1.216.
Y entonces, podemos imaginar que el segundo valor, aquí,
luego se convierte en 1216 después de esta primera iteración.
Y así, por lo tanto, en la siguiente iteración,
cuando vamos al segundo objeto,
el acumulador actual ya es de 1.216.
Así que aquí, nuevamente, en la segunda iteración,
ser ya 1.216.
Y luego, encima de eso, sumamos 295.
Entonces, esas son las páginas del libro actual.
Y así, entonces, en la siguiente iteración
el acumulador ya será 1.216 más 295
que son como 1.500 y pico.
Y luego, además de eso, agregamos este número de páginas,
y así sigue, hasta el final.
Entonces, podemos imaginar este acumulador aquí, básicamente,
como un montón, sobre el que ponemos cada vez más y más,
hasta que al final lleguemos al resultado final
que estábamos buscando.
Entonces, es como un valor intermediario,
en este caso, al que seguimos sumando el número de páginas
hasta que, al final, llegamos a las 3.227 páginas.
Bien, eso fue un poco confuso, una vez más,
pero tampoco es muy importante
para entender cómo funciona,
especialmente si todo lo que estamos haciendo
es como esta simple suma de números.
Entonces, esto siempre funciona igual al final.
Y entonces, sí, el caso de uso más importante, por lo general,
de reducir es solo esto.
Pero también podemos hacer cosas muy, muy complejas,
como dije al principio
porque este valor inicial, aquí,
no tiene que ser un número.
También podría ser una matriz o un objeto.
Y entonces, ¿qué significa esto?
es que podríamos hacer, de verdad,
cualquier cosa que hagamos con mapa o filtro
también con una reducción.
Pero no entraré en eso ahora mismo, porque, sí,
(risas) para eso ya tenemos mapa y filtro.
Ahora, aquí, simplemente me gusta, en este caso,
para reemplazar el valor del acumulador con la suma,
así que llamándolo simplemente suma,
porque eso es lo que realmente está haciendo.
Pero ten en cuenta que,
bueno es un acumulador
porque seguimos sumando y subiendo y subiendo
sobre este valor temporal, por así decirlo.
En este caso, es simplemente la suma de las páginas.
Y aquí me gusta llamarlo suma.
Bien, y eso es, en realidad, todo lo que tenía que mostrarles, aquí,
sobre reducir,
porque sí, muchas veces simplemente lo usamos
para cosas simples como esta.
Y ahora ya sabes cómo hacerlo.