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

224
Views
¿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 answers
Answer question

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 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!