-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathLBucles.js
133 lines (107 loc) · 3.08 KB
/
LBucles.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
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
127
128
129
130
131
132
133
/**
* BLOQUE 12 - Bucles
*
*/
console.log("[GUÍA]: Aquí empezamos con los Bucles");
// Bucle FOR:
const MAX_ITER = 5
for (let i = 0; i < MAX_ITER; i++) {
console.log(`Esta es la iteración núnero ${i}`);
}
// Bucle while:
let i = 0;
while (i < MAX_ITER) {
console.log(`Esta es la iteración número ${++i}`);
if (i == 3) {
console.log('Saliendo del bucle ...');
break;
}
}
// Bucle do while:
/*let primo = 0
let password;
do {
password = prompt("Escribe la contraseña: 123");
}while(password !== '123')
console.log("Contraseña correcta");*/
// Iterar Sobre arrays (u otros iterables)
const productos = [
"Camisetas",
"Pantalones",
"Trajes",
"Zapatillas"
];
// Método 1:
console.log("Lista de productos con for: ");
for (let i = 0; i < productos.length; ++i) {
console.log(productos[i]);
}
// Método 2:
console.log("Lista de productos con for each: ");
for (let producto of productos) {
console.log(producto);
}
// Método 3: High order methods
// Array.forEach(function(value, index))
console.log("Lista de productos con un array method: ");
const angulos = [0, Math.PI / 4, Math.PI / 2, Math.PI, 3 * Math.PI / 4, 2 * Math.PI];
angulos.forEach(function (val, index) {
console.log(`Posición ${index}: ${Math.cos(val).toFixed(2)}`);
});
// Arrow function
console.log("Usando arrow functions: ");
angulos.forEach(num => console.log(Math.cos(num).toFixed(2)));
// Otros high order methods:
// Método filter:
const emails = ['[email protected]', 'adios', '[email protected]'];
let emailsValidos = emails.filter(email => email.includes('@'));
console.log(emailsValidos);
// Método MAP:
const datosMal = ['Dimas', 'jesús', 'JUAN', 'AnA', 'Maria'];
const datosLimpios = datosMal.map(
function (nombre) {
return nombre.toLowerCase();
}
)
console.log(datosLimpios)
// Iterar sobre los atributos de un objeto
console.log(("Iterar sobre los atributos de un objeto: "))
const persona = {
nombre: 'Dimas',
edad: 23,
DNI: 232323
}
for (let atributo in persona) {
console.log(`${atributo}: ${persona[atributo]}`)
}
// EJERCICIO:
// Queremos aplicar un 20% de descuento a todos los nuevos productos añadidos a nuestra tienda.
// Consideramos que un producto es nuevo si se ha añadido este mes.
// Queremos obtener una lista de los productos que han recibido el descuento con el precio actualizado.
const objetos = [
{
nombre: 'Camiseta',
precio: 20,
fecha: new Date('10-10-2021'),
},
{
nombre: 'Pantalones',
precio: 50,
fecha: new Date('03-13-2021'),
},
{
nombre: 'Zapatos',
precio: 80,
fecha: new Date('03-03-2021'),
},
]
const fechaActual = new Date();
const descuentos = objetos.filter((producto) => {
return producto.fecha.getMonth() === fechaActual.getMonth()
}
).map((producto) => {
producto.precio = producto.precio - 0.2 * producto.precio;
return producto
}
)
console.log(descuentos)