My goal is to filter through a JSON array of movies based on their rating. When a radio button is clicked, the page updates showing only the movies with that rating. As of now, every time a button is clicked, it just displays all of the movies in the array. Here is an example of what my JSON file looks like
"movies": {
"movie": [
{
"title": "Aladdin",
"rating": "G",
"release date": "11-25-1992",
"poster": "https://image.tmdb.org/t/p/w185/qsHpmqekgeQKMKL8PWnFsrXTXGs.jpg"
},
Here is my JS:
var moviesObj = loadJSON("movies.JSON");
var movies = moviesObj.movies;
var movies = movies.movie;
function filter_movies(rating) {
var array = [];
for (var i = 0; i < movies.length; i++) {
var title = movies[i].title;
var rating = movies[i].rating;
var release_date = movies[i]["release date"];
var poster = movies[i].poster;
if (movies.rating === rating) {
array.push(rating);
}
console.log(array);
}
function display_movies(movies) {
var moviegrid = "";
for (var i = 0; i < movies.length; i++) {
//retrieve movie details and store them in variables to be displayed
title = movies[i].title;
rating = movies[i].rating;
release_date = movies[i]["release date"];
poster = movies[i].poster;
//start a new row in the grid
if (i % 6 == 0) {
moviegrid += "<div class='row'>";
};
//display a movie inside a div block
moviegrid += "<div class='col'><p><img src='" + poster + "'><span>" + title + "<br>Rated " +
rating + "<br>" + release_date + "</span></p></div>";
//close the row in the grid
if (i % 6 == 5) {
moviegrid += "</div>";
};
};
//display movies in a div block with the id "moviegrid".
document.getElementById('moviegrid').innerHTML = moviegrid;
};
display_movies(movies);
};