Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

289
Views
Cómo filtrar elementos de Array of Array en Javascript

¿Cómo puede filtrar el título de la película en función del elemento Género en la matriz?

 const result= [ { "title": "Mad Max: Fury Road", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "The Hunger Games: Mockingjay Part 1", "genre": [ "Adventure", "Thriller" ] }, { "title": "Jurassic World", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "Everest", "genre": [ "Drama", "Thriller" ] }, { "title": "Insurgent", "genre": [ "Adventure" ] }, { "title": "Sicario", "genre": [ "Action", "Crime", "Drama" ] } ];

Supongamos que si quiero filtrar el nombre del título de la película según el género, por ejemplo: "Ciencia ficción", entonces debería devolver una variedad de títulos de películas, por ejemplo: ["Mad Max: Fury Road", "Jurassic World"]

Probé varias combinaciones de mapa y filtro, pero no funcionó.

 const newResult = result.map((curr) => curr.genre.filter((ele) => ele === search)).filter((ele) => ele);
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Usamos el filter para devolver todas las películas que pasan alguna condición.

Para la condición de aprobación de filter , usamos every en la matriz de géneros proporcionada.

every devuelve verdadero si todos los elementos en la matriz ( genreList ) fueron llamados para devolver verdadero para alguna condición.

Para la condición de every , verificamos que la matriz de género de la película incluya la entrada en la genreList de lista de género dada.

Entonces, en inglés, este código dice "Por favor, dame todas las películas que tengan todos los géneros dados en la lista de géneros".

 const result= [ { "title": "Mad Max: Fury Road", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "The Hunger Games: Mockingjay Part 1", "genre": [ "Adventure", "Thriller" ] }, { "title": "Jurassic World", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "Everest", "genre": [ "Drama", "Thriller" ] }, { "title": "Insurgent", "genre": [ "Adventure" ] }, { "title": "Sicario", "genre": [ "Action", "Crime", "Drama" ] } ]; const moviesByGenres = (moviesList, genreList) => { return moviesList.filter((m) => { return genreList.every((g) => m.genre.includes(g)); }); } // All action movies console.log(moviesByGenres(result, ["Action"])); // All action+adventure movies console.log(moviesByGenres(result, ["Action", "Adventure"]));

about 4 years ago · Juan Pablo Isaza Report

0

Use Array#filter para seleccionar los elementos relevantes que cumplan con los criterios establecidos y use Array#map para seleccionar las propiedades de los elementos seleccionados que le interesen.

 const result= [ { "title": "Mad Max: Fury Road", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "The Hunger Games: Mockingjay Part 1", "genre": [ "Adventure", "Thriller" ] }, { "title": "Jurassic World", "genre": [ "Action", "Adventure", "Sci-Fi" ] }, { "title": "Everest", "genre": [ "Drama", "Thriller" ] }, { "title": "Insurgent", "genre": [ "Adventure" ] }, { "title": "Sicario", "genre": [ "Action", "Crime", "Drama" ] } ], search = "Sci-Fi"; newResult = result //which items meet the set criteria? .filter(({genre}) => genre.includes(search)) //what about those items am I zeroing in on? .map(({title}) => title); console.log( newResult );

about 4 years ago · Juan Pablo Isaza Report

0

Encontré la respuesta después de prueba y error.

 const n = result.filter((curr) => curr['genre'].includes("Action"))
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!