-
Notifications
You must be signed in to change notification settings - Fork 74
Expand file tree
/
Copy pathejemplos-avanzados-array-1.js
More file actions
126 lines (92 loc) · 3.37 KB
/
Copy pathejemplos-avanzados-array-1.js
File metadata and controls
126 lines (92 loc) · 3.37 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
let numeros = [1, 20, -10, 3, 0, 30, - 1, 3, - 7];
//console.log(numeros[0]); // posicióm i-esima del array
// foreach. Recibe como parámetro uan función de callback. La función se invoca tantas veces como elementos tiene el array.
// Cuando necesitamos iterar por TODOS los elementos del array, el foreach es el método más adecuado
// numeros.forEach((x)=>{
// console.log(x);
// });
// Equivalente:
// for (let i=0; i<numeros.length;i++) {
// console.log(numeros[i]);
// }
//filter https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
// Usaré el método filter para quedarme con todos los números que sean positivos (numero > 0 )
let positivos = numeros.filter((x) => {
// si hacemos un return que devuelva una expresión boleana cierta, se va a quedar con ese elemento del array
// si el return devuelve una expresión boleana falsa, NO se va a quedar con ese elemento para añadir al nuevo array
return x > 0;
})
// Filter tiene una función ES6 con un return implicito
// La expresión boleana tiene que estar en una línia y no puede haber instruccion adicionales ni {}
let positivosES6 = numeros.filter(x => x > 0);
// console.log(positivos);
// console.log(positivosES6);
//map.https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map
let nombres = ['Oscar', 'Max', 'Ana', 'Pepe', 'Pau', 'Vanessa', 'Xavi'];
// Utilizo map para saludar a cada una de estas personas
let saludos = nombres.map((nombre) => {
return 'Hola ' + nombre;
})
// console.log(nombres);
// console.log(saludos);
let caracteresCadaNombre = nombres.map((nombre) => {
return nombre.length;
})
// console.log(caracteresCadaNombre)
// sort
// Queremos ordenar el array de menor a mayor número
numeros.sort((a, b) => {
if (a > b) { // a=5, b=1
return 1; // Te digo que el elemento A es mayor que el elemento B
}
if (a < b) { // a=-10, b=-7
return -1; // TE digo que el elemento A es menor que el elemento B
}
return 0;
});
//console.log(numeros)
// voy a ordenar los nombres por tamaño del nombre. Quiero ordenarlo
// de nombres más cortos primeros, y lo más largos, al final del array
nombres.sort((a, b) => {
// console.log('Elemento A a comparar:', a);
// console.log('Elemento B a comparar:', b);
// console.log('==========================')
if (a.length > b.length) {
return 1; // Te digo que el elemento A es mayor que el elemento B
}
if (a.length < b.length) { //'ana', 'fermin'
return -1; // Te digo que elemento B es mayor que el elemento A
}
return 0;
})
// console.log(nombres);
let usuarios = [{
nombre: 'Pepe',
edad: 30
}, {
nombre: 'Maria',
edad: 45
}, {
nombre: "Paco",
edad: 19
}]
// ordenemos el array de usuarios por edad, de manera creciente.
// console.log(usuarios);
usuarios.sort( (a,b) => {
if (a.edad>b.edad){
return 1;
}
if (a.edad<b.edad) {
return -1;
}
return 0;
})
// console.log(usuarios);
// methodo reduce.
// Quiero usar el metodo reduce para obtener la suma de todo el array de numeros
// https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
let numerosPeque = [1, 2, 3];
const sumaNumeros = numerosPeque.reduce( (acumulador, siguienteValor)=>{
return acumulador + siguienteValor;
})
console.log(sumaNumeros)