-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreduce_array.js
66 lines (46 loc) · 1.52 KB
/
reduce_array.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//reduce lo que hace es reducir un array a un valor único
var isabel = {
nombre: 'isabel',
cantidadLibros: 15,
peso: 60,
edad:29
}
var horacio = {
nombre: 'horacio',
cantidadLibros: 12,
peso: 90,
edad:27
}
var alejandra = {
nombre: 'alejandra',
cantidadLibros: 18,
peso:55,
edad:15
}
var nicolas = {
nombre: 'nicolas',
cantidadLibros: 1,
peso: 70,
edad:13
}
var personas = [isabel, horacio, alejandra, nicolas]
/*
var acumulador = 0;
for (let i = 0; i < personas.length; i++) {
acumulador = acumulador + personas[i].cantidadLibros
}
console.log(`en total las personas tienen ${acumulador} cantidad de libros`)
*/
//ahora haremos lo mismo que en la parte superior pero con reduce
//para reducir necesitamos dos cosas, el nombre de la funcion y el valor inicial/original del acumulador
// cuando hacemos {cantidadLibros} le indicamos a la funcion que solo accederemos a la cantidad de libros y no al objeto completo
const reducer = (acum, { cantidadLibros}) => acum + cantidadLibros
var totalLibros = personas.reduce(reducer, 0)
console.log(`en total las personas tienen ${totalLibros} cantidad de libros`)
//contador de kilos
const reduceKilos = (acumPeso, { peso }) => acumPeso + peso
var totalKilos = personas.reduce(reduceKilos, 0)
console.log(`el total de kilos de las personas es ${totalKilos}`)
const sumaEdad = (acumEdad, { edad } ) => acumEdad + edad
var totalEdad = personas.reduce(sumaEdad, 0)
console.log(`la suma de todas las edades es ${totalEdad}`)