Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

159
Vistas
cómo encontrar un valor de una matriz de objetos en función de otras matrices con identificadores

Estoy tratando de filtrar el nombre de los géneros para una película según las identificaciones. así que si la identificación coincide, obtengo ese nombre.

 const genres = [ { id: 28, name: "Action" }, { id: 12, name: "Adventure" }, { id: 16, name: "Animation" }, { id: 35, name: "Comedy" }, { id: 80, name: "Crime" }, { id: 99, name: "Documentary" }, { id: 18, name: "Drama" }, { id: 10751, name: "Family" }, { id: 14, name: "Fantasy" }, { id: 36, name: "History" }, { id: 27, name: "Horror" }, { id: 10402, name: "Music" }, { id: 9648, name: "Mystery" }, { id: 10749, name: "Romance" }, { id: 878, name: "Science Fiction" }, { id: 10770, name: "TV Movie" }, { id: 53, name: "Thriller" }, { id: 10752, name: "War" }, { id: 37, name: "Western" }, ]; const genre_ids = [10752, 10770, 18, 12]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede filtrar los genres usando genre_ids y luego mapear los valores específicos

 function filterGenres(genres, ids) { return genres .filter((genre) => ids.indexOf(genre.id) != -1) .map((genre) => genre.name) }

o, alternativamente, utilice la función de reduce

 function filterGenres(genres, ids) { return genres.reduce((results, genre) => { if(ids.indexOf(genre.id) != -1) { results.push(genre.name); } return results; }, []); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

La siguiente puede ser una posible solución para lograr el objetivo deseado.

Fragmento de código

 const getNames = (ids, objects) => ( ids.map(el => ( objects.find( ({id}) => id === el )?.name )) ); // below will be better in performance // but the names returned will be ordered based on 'genres' array // objects.filter(({id}) => ids.some(el => el === id)) // .map(({name}) => name) const genres = [ { id: 28, name: "Action" }, { id: 12, name: "Adventure" }, { id: 16, name: "Animation" }, { id: 35, name: "Comedy" }, { id: 80, name: "Crime" }, { id: 99, name: "Documentary" }, { id: 18, name: "Drama" }, { id: 10751, name: "Family" }, { id: 14, name: "Fantasy" }, { id: 36, name: "History" }, { id: 27, name: "Horror" }, { id: 10402, name: "Music" }, { id: 9648, name: "Mystery" }, { id: 10749, name: "Romance" }, { id: 878, name: "Science Fiction" }, { id: 10770, name: "TV Movie" }, { id: 53, name: "Thriller" }, { id: 10752, name: "War" }, { id: 37, name: "Western" }, ]; const genre_ids = [10752, 10770, 18, 12]; console.log(getNames(genre_ids, genres));

Explicación

  • Se utiliza un nuevo método getNames para obtener el resultado.
  • Para cada id en la matriz de genre_ids
  • Encuentra si hay una entrada en genres (haciendo coincidir el id prop)
  • Si lo encuentra, devuelva el accesorio de name del elemento de genres coincidentes
  • Y la matriz resultante se devuelve (implícitamente)

Método comentado:

  • Filtra los genres y desestructura para obtener solo el id
  • Compruebe si la id está presente en la matriz de genre_ids
  • En caso afirmativo, use .map para desestructurar solo el name
  • Y esta matriz resultante de name se devuelve (implícitamente)

Este método regresa en un orden diferente (basado en la matriz de genres ).

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Estás intentando algo como esto?

 let genre_names = new Array(); for(let i=0; i<genre_ids.length; i++) { var a = genres.find(x=>x.id == genre_ids[i]); if (!!a) genre_names.push(a.name); } console.log(genre_names);

resultando en [Guerra, Películas de TV, Drama, Aventura] ?

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda