Tengo una estructura JSON anidada, ¿cómo puedo devolver un valor específico de una clave de la estructura según el valor de otra clave de la misma estructura?
Por ejemplo: mi JSON inicial es el siguiente
{ "movies": [ { "movie_name": "The Unforgivable", "movie_details": { "director": "Nora Fingscheidt", "lead_actor": "Sandra Bullock", "genre": { "romance": "no", "drama": "yes", "action": "no", "comedy": "no" } } }, { "movie_name": "The Power Of The Dog", "movie_details": { "director": "Jane Campion", "lead_actor": "Benedict Cumberbatch", "genre": { "romance": "yes", "drama": "yes", "action": "no", "comedy": "no" } } } ] } De esta estructura anterior, necesito devolver el nombre del directors que ha hecho una película romance .
entonces, usando el par de valores clave "romance": "yes" , necesito devolver el valor del director .
En este ejemplo, espero el resultado como [Jane Campion]
Puede usar filter para filtrar películas románticas y luego mapear los nombres de los directores usando map .
var data = { "movies": [ { "movie_name": "The Unforgivable", "movie_details": { "director": "Nora Fingscheidt", "lead_actor": "Sandra Bullock", "genre": { "romance": "no", "drama": "yes", "action": "no", "comedy": "no" } } }, { "movie_name": "The Power Of The Dog", "movie_details": { "director": "Jane Campion", "lead_actor": "Benedict Cumberbatch", "genre": { "romance": "yes", "drama": "yes", "action": "no", "comedy": "no" } } } ] } console.log(data.movies.filter(movie => movie.movie_details.genre.romance == "yes").map(directorsArr => directorsArr.movie_details.director))Al principio, debe filtrar sus objetos según el género romántico.
let romanceMovies = data.movies.filter(movie => movie.movie_details.genre.romance === "yes")luego, cuando tiene películas románticas, puede mapear el resultado para obtener el nombre del director.
let romanceDirectors = romanceMovies.map(movie => movie.movie_details.director)