From 121dd97139a1ee827a7001690e5366620502e475 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Wed, 15 Jun 2022 12:07:17 +0200 Subject: [PATCH 1/9] Ejercicio 1 --- src/films.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/films.js b/src/films.js index cdad23d..773749a 100644 --- a/src/films.js +++ b/src/films.js @@ -1,8 +1,8 @@ // Exercise 1: Get the array of all directors. -function getAllDirectors(array) { - let result = ???; +function getAllDirectors(movies) { + let result = movies.map (movie => movie.director); console.log("EXERCICE 1 ->", result); - return result; + return result; } // Exercise 2: Get the films of a certain director From 124be36f5acc769a01426d3e583aa28bb9dc4fa4 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Wed, 15 Jun 2022 22:51:05 +0200 Subject: [PATCH 2/9] Ejercicio 2 --- src/films.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/films.js b/src/films.js index 773749a..006b8db 100644 --- a/src/films.js +++ b/src/films.js @@ -6,8 +6,10 @@ function getAllDirectors(movies) { } // Exercise 2: Get the films of a certain director -function getMoviesFromDirector(array, director) { - +function getMoviesFromDirector(movies, director) { + let result = movies.filter (movie => movie.director == director); + console.log("EXERCICE 2 ->", result); + return result; } // Exercise 3: Calculate the average of the films of a given director. From 394dc2c1783f91c60e934922ba2512407026ce4b Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Thu, 16 Jun 2022 11:41:59 +0200 Subject: [PATCH 3/9] Ejercicio 3 --- src/films.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/films.js b/src/films.js index 006b8db..b7f81e1 100644 --- a/src/films.js +++ b/src/films.js @@ -1,21 +1,25 @@ // Exercise 1: Get the array of all directors. function getAllDirectors(movies) { let result = movies.map (movie => movie.director); - console.log("EXERCICE 1 ->", result); + //console.log("EXERCICE 1 ->", result); return result; } // Exercise 2: Get the films of a certain director function getMoviesFromDirector(movies, director) { let result = movies.filter (movie => movie.director == director); - console.log("EXERCICE 2 ->", result); + //console.log("EXERCICE 2 ->", result); return result; } // Exercise 3: Calculate the average of the films of a given director. -function moviesAverageOfDirector(array, director) { - -} +function moviesAverageOfDirector(movies, director) { + let moviesDirector = movies.filter (movie => movie.director == director); + let scores = moviesDirector.map(i => i.score); + let averageScores = (scores.reduce((a,b) => (a + b))/scores.length).toFixed(2); + //console.log("EXERCICE 3 ->", averageScores); + return parseFloat (averageScores); + } // Exercise 4: Alphabetic order by title function orderAlphabetically(array) { From 12870e0b34ad850825faf2a89dd084796a57bfd7 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Thu, 16 Jun 2022 12:29:44 +0200 Subject: [PATCH 4/9] Ejercicio 4 --- src/films.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/films.js b/src/films.js index b7f81e1..27b7210 100644 --- a/src/films.js +++ b/src/films.js @@ -22,8 +22,11 @@ function moviesAverageOfDirector(movies, director) { } // Exercise 4: Alphabetic order by title -function orderAlphabetically(array) { - +function orderAlphabetically(movies) { + let allMovies = movies.map (movie => movie.title); + let moviesSort = allMovies.sort().slice(0,20); + //console.log("EXERCICE 4 ->", moviesSort); + return moviesSort; } // Exercise 5: Order by year, ascending From d455425b32c94126d5a745aa08704ae9c38dac2a Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Fri, 17 Jun 2022 12:48:08 +0200 Subject: [PATCH 5/9] Ejercicio 5 --- src/films.js | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/films.js b/src/films.js index 27b7210..6e67eba 100644 --- a/src/films.js +++ b/src/films.js @@ -1,5 +1,6 @@ // Exercise 1: Get the array of all directors. function getAllDirectors(movies) { + let result = movies.map (movie => movie.director); //console.log("EXERCICE 1 ->", result); return result; @@ -7,6 +8,7 @@ function getAllDirectors(movies) { // Exercise 2: Get the films of a certain director function getMoviesFromDirector(movies, director) { + let result = movies.filter (movie => movie.director == director); //console.log("EXERCICE 2 ->", result); return result; @@ -14,30 +16,40 @@ function getMoviesFromDirector(movies, director) { // Exercise 3: Calculate the average of the films of a given director. function moviesAverageOfDirector(movies, director) { - let moviesDirector = movies.filter (movie => movie.director == director); - let scores = moviesDirector.map(i => i.score); - let averageScores = (scores.reduce((a,b) => (a + b))/scores.length).toFixed(2); + + let moviesDirector = movies.filter((movie) => movie.director == director); + let scores = moviesDirector.map((i) => i.score); + let averageScores = (scores.reduce((a, b) => a + b) / scores.length).toFixed(2); //console.log("EXERCICE 3 ->", averageScores); - return parseFloat (averageScores); - } + return parseFloat(averageScores); +} // Exercise 4: Alphabetic order by title function orderAlphabetically(movies) { - let allMovies = movies.map (movie => movie.title); - let moviesSort = allMovies.sort().slice(0,20); + + let allMovies = movies.map((movie) => movie.title); + let moviesSort = allMovies.sort().slice(0, 20); //console.log("EXERCICE 4 ->", moviesSort); - return moviesSort; + return moviesSort; } // Exercise 5: Order by year, ascending -function orderByYear() { +function orderByYear(movies) { + let moviesByYear = [...movies].sort((a,b) => { + if (a.year > b.year) {return 1;} + if (a.year < b.year) {return -1;} + if (a.title.toLowerCase() > b.title.toLowerCase()) {return 1;} + if (a.title.toLowerCase() < b.title.toLowerCase()) {return -1;} +}) + //console.log("EXERCICE 5 ->", moviesByYear); + return moviesByYear; } // Exercise 6: Calculate the average of the movies in a category -function moviesAverageByCategory() { - -} +function moviesAverageByCategory(movies, genre) { + + } // Exercise 7: Modify the duration of movies to minutes function hoursToMinutes() { From 88465d0122585173f34097aab369f0cd973866e0 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Fri, 17 Jun 2022 12:50:05 +0200 Subject: [PATCH 6/9] Ejercicio 5 --- src/films.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/films.js b/src/films.js index 6e67eba..019028c 100644 --- a/src/films.js +++ b/src/films.js @@ -40,7 +40,8 @@ function orderByYear(movies) { if (a.year > b.year) {return 1;} if (a.year < b.year) {return -1;} if (a.title.toLowerCase() > b.title.toLowerCase()) {return 1;} - if (a.title.toLowerCase() < b.title.toLowerCase()) {return -1;} + if (a.title.toLowerCase() < b.title.toLowerCase()) {return -1;} + return 0; }) //console.log("EXERCICE 5 ->", moviesByYear); return moviesByYear; From ae51b714f9f6c016743e6e6a6724dd3bcddaa673 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Mon, 20 Jun 2022 17:43:42 +0200 Subject: [PATCH 7/9] Ejercicio 6 --- src/films.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/films.js b/src/films.js index 019028c..27ff8f7 100644 --- a/src/films.js +++ b/src/films.js @@ -15,15 +15,22 @@ function getMoviesFromDirector(movies, director) { } // Exercise 3: Calculate the average of the films of a given director. -function moviesAverageOfDirector(movies, director) { - let moviesDirector = movies.filter((movie) => movie.director == director); - let scores = moviesDirector.map((i) => i.score); +function average(movies){ + let scores = movies.map((movie) => movie.score); let averageScores = (scores.reduce((a, b) => a + b) / scores.length).toFixed(2); //console.log("EXERCICE 3 ->", averageScores); return parseFloat(averageScores); } +function moviesAverageOfDirector(movies, director) { + + let moviesDirector = movies.filter((movie) => movie.director == director); + let result = average(moviesDirector); + return result; +} + + // Exercise 4: Alphabetic order by title function orderAlphabetically(movies) { @@ -48,14 +55,19 @@ function orderByYear(movies) { } // Exercise 6: Calculate the average of the movies in a category + function moviesAverageByCategory(movies, genre) { - + + let moviesGenre = movies.filter((movie) => movie.genre == genre && movie.score !==""); + let result = average(moviesGenre); + return result; } // Exercise 7: Modify the duration of movies to minutes -function hoursToMinutes() { +function hoursToMinutes(movies) { + + } -} // Exercise 8: Get the best film of a year function bestFilmOfYear() { From 146587b360480d748453c9749402b2f063b1dfa0 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Wed, 22 Jun 2022 10:11:33 +0200 Subject: [PATCH 8/9] Ejercicios 7 y 8 --- src/films.js | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/films.js b/src/films.js index 27ff8f7..212e023 100644 --- a/src/films.js +++ b/src/films.js @@ -17,7 +17,7 @@ function getMoviesFromDirector(movies, director) { // Exercise 3: Calculate the average of the films of a given director. function average(movies){ - let scores = movies.map((movie) => movie.score); + let scores = movies.map(movie => movie.score); let averageScores = (scores.reduce((a, b) => a + b) / scores.length).toFixed(2); //console.log("EXERCICE 3 ->", averageScores); return parseFloat(averageScores); @@ -25,16 +25,15 @@ function average(movies){ function moviesAverageOfDirector(movies, director) { - let moviesDirector = movies.filter((movie) => movie.director == director); + let moviesDirector = movies.filter(movie => movie.director == director); let result = average(moviesDirector); return result; } - // Exercise 4: Alphabetic order by title function orderAlphabetically(movies) { - let allMovies = movies.map((movie) => movie.title); + let allMovies = movies.map(movie => movie.title); let moviesSort = allMovies.sort().slice(0, 20); //console.log("EXERCICE 4 ->", moviesSort); return moviesSort; @@ -58,23 +57,46 @@ function orderByYear(movies) { function moviesAverageByCategory(movies, genre) { - let moviesGenre = movies.filter((movie) => movie.genre == genre && movie.score !==""); + let moviesGenre = movies.filter(movie => movie.genre == genre && movie.score !==""); let result = average(moviesGenre); return result; } // Exercise 7: Modify the duration of movies to minutes + function hoursToMinutes(movies) { - - } + let movieDuration = movies.map((movie) => { + let duration = movie.duration; + let realMin; -// Exercise 8: Get the best film of a year -function bestFilmOfYear() { + let hours = parseInt(duration.slice(0, 1) * 60); + let minutes = parseInt(duration.slice(2, -3)); + minutes >= 0 ? (realMin = minutes) : (realMin = 0); -} + let durationInMin = { + duration: parseInt(hours + realMin) + }; + return durationInMin; + }); + console.log('EXERCICE 7 ->', movieDuration); + return movieDuration; +} +// Exercise 8: Get the best film of a year + +function bestFilmOfYear(movies, year) { + let filmByYears = movies.filter(movie => movie.year == year) + filmByYears.sort((a,b) => { + if (a.year > b.year) {return -1;} + if (a.year < b.year) {return 1;} + return 0; + }) + let bestFilm = filmByYears.splice(0,1); + //console.log("EXERCICE 8 ->", bestFilm); + return bestFilm; +} // The following is required to make unit tests work. /* Environment setup. Do not modify the below code. */ From 5ebced9faa6b54b4259894174455dd79b1b05879 Mon Sep 17 00:00:00 2001 From: Alex Luque Date: Wed, 22 Jun 2022 10:12:05 +0200 Subject: [PATCH 9/9] Ejercicios 7 y 8 --- src/films.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/films.js b/src/films.js index 212e023..8914949 100644 --- a/src/films.js +++ b/src/films.js @@ -79,7 +79,7 @@ function hoursToMinutes(movies) { }; return durationInMin; }); - console.log('EXERCICE 7 ->', movieDuration); + //console.log('EXERCICE 7 ->', movieDuration); return movieDuration; }