-
Notifications
You must be signed in to change notification settings - Fork 0
/
09-ciclos.js
85 lines (71 loc) · 1.75 KB
/
09-ciclos.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
// Ciclos en JS
const movies = [
{
id: 1,
title: 'Joker',
runtime: 2.2,
releaseDate: '2019-10-04',
adult: false
},
{
id: 2,
title: 'Star Wars',
runtime: 2.5,
releaseDate: '2019-12-25',
adult: false
},
{
id: 3,
title: 'The Invisible Man',
runtime: 1.8,
releaseDate: '2020-02-26',
adult: false
}
];
console.log(movies);
// Uso de Ciclos
// inicialiacion; condicion de finalizacion; incremento/control
for(let i=0; i<movies.length; i++) {
if(movies[i].runtime > 2) {
// console.log(i, movies[i].title);
}
}
// Ciclo While
let i = 0;
while(i < movies.length) {
// console.log(i, movies[i].title);
i++;
}
// Sintaxis For of Loop/Ciclo
for(let movie of movies) {
// console.log('movie', movie.title); // movies[i]. NO necesitamos indice!
}
// Ciclo via forEach
movies.forEach(function(movie) { // callback
console.log(movie.title);
});
const titles = movies.map(function(movie){
// return movie.title;
return newMovie = {
...movie, // Spread Operator: Copiar todas las propiedades
title: movie.title.toUpperCase(),
date: new Date(movie.releaseDate)
};
});
console.log('titles', titles);
// Filtrado de elementos: filter
const shortMovies = movies.filter(function(movie){
return movie.runtime < 2; // If true, seleccionamos la pelicula
});
console.log(shortMovies);
const concatResult =
movies.filter(function(movie){
return movie.runtime < 2;
}).map(function(movie){
// return movie.title;
return {
title: movie.title.toUpperCase(),
runtime: movie.runtime
};
});
console.log(concatResult);