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

225
Vistas
¿Cómo puedo devolver una lista de objetos en función de sus valores?

Tengo un servidor local que estoy usando para practicar y aprender. En él, tengo una serie de objetos:

 let movies = [ //1 { title: 'Lord of the Rings', actor: 'Orlando', genre: 'adventure', director: 'person' } , //2 { title: 'Harry Potter', actor: 'Daniel Radcliffe', genre: 'Fantasy', director: 'person', movie_id: "7" } , //3 { title: 'The Prestige', actor: 'Christian Bale', genre: 'adventure', director: 'person' } , //4 { title: 'The Dark Knight', actor: 'Christian Bale', genre: 'adventure', director: 'person' } , //5 { title: 'Pirates of the Caribbean', actor: 'Orlando', genre: 'adventure', director: 'person' } ]

en el que puedo devolver un objeto específico basado en el valor de URL ingresado:

ex. http://localhost:8081/movies?actor=Orlando

devolverá el primer objeto que contenga la clave/valor del objeto "actor: 'Orlando'"

mientras usa este código:

 app.get("/movies", (req, res) => { if (req.query.title) { res.json(movies.find((movie) => { return movie.title === req.query.title })); } if (req.query.actor) { res.json(movies.find((movie) => { return movie.actor === req.query.actor })); } if (req.query.director) { res.json(movies.find((movie) => { return movie.director === req.query.director })); } res.json(movies); });

Sin embargo, esto solo devuelve el primer objeto que encuentra con el valor solicitado. ¿Qué debo agregar/cambiar para que devuelva todas las películas del mismo actor/directo/género, etc.?

El retorno ideal cuando escribo la URL antes mencionada debería ser:

 { title: 'Lord of the Rings', actor: 'Orlando', genre: 'adventure', director: 'person' } { title: 'Pirates of the Caribbean', actor: 'Orlando', genre: 'adventure', director: 'person' }

gracias por todo y cualquier ayuda!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es que desea devolver una matriz de objetos json. Al utilizar el método de find , solo recibirá el primer elemento encontrado. Intente usar la función de filter .

Ejemplo:

 if (req.query.actor) { res.json(movies.filter((movie) => { return movie.actor === req.query.actor })); }

Resultado para http://localhost:8081/movies?actor=Orlando:

 [{ title: 'Lord of the Rings', actor: 'Orlando', genre: 'adventure', director: 'person' } { title: 'Pirates of the Caribbean', actor: 'Orlando', genre: 'adventure', director: 'person' }]
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