-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmovieHelpers.js
25 lines (19 loc) · 931 Bytes
/
movieHelpers.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
function getMovieScores(allMovieData, keywords) {
const movieScores = {};
allMovieData.forEach((movieObj) => {
const sharedKeywords = movieObj.keywords.filter(kw => keywords.includes(kw));
const score = sharedKeywords.length;
movieScores[movieObj.movieName] = score;
});
return movieScores;
}
function getMovieRecommendation(allMovieData, movieScores) {
const recommendation = Object.keys(movieScores).reduce((a, b) => movieScores[a] > movieScores[b] ? a : b);
const recommendationObj = allMovieData.find(movie => movie.movieName.toLowerCase() === recommendation.toLowerCase());
recommendationObj.hasData = true;
return recommendationObj;
}
function findMovie(allMovieData, movieInput) {
return allMovieData.find(movie => movie.movieName.toLowerCase() === movieInput.toLowerCase());
}
module.exports = { getMovieScores, getMovieRecommendation, findMovie };