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

194
Views
Condicionamiento dentro de objetos array.map()

Estoy tratando de unir tres matrices en función de las identificaciones coincidentes, pero si las publicaciones o los "me gusta" son "indefinidos", entonces termina rompiendo el código, ¿cómo aplicaría el condicionamiento a esto? Si la matriz no está definida, debería volver vacío y si no se debe realizar el filtrado.

 //sample data const posts = [ { _id: 1 , message: 'this is post one' , likes: [ { _id: 1111 } , { _id: 2222 } ] , comments: [ { _id: 3333 } , { _id: 4444 } ] } ] const comments = [ { _id: 3333, message: 'this is comment 1' } , { _id: 4444, message: 'this is comment 2' } ] const likes = [ { _id: 1111, user: 'Peter' } , { _id: 2222, user: 'John' } ] const newPosts = posts.map(post => ({ ...post, likes: likes.filter(like => post.likes.map(like => like._id).includes(like._id)), comments: comments.filter(comment => post.comments.map(comment => comment._id).includes(comment._id)), }))

lo que he intentado

 const newPosts = posts.map(post => ({ ...post, likes: likes.filter(like => like === undefined ? '': post.likes.map(likes => likes._id).includes(like._id)), comments: comments.filter(comment => comment === undefined ? '': post.comments.map(comments => comments._id).includes(comment._id)), }))

el uso para esto es socket.io emite cambios desde mi base de datos con los tres sockets diferentes, puedo tomar las tres matrices que contienen los cambios y unirlas en una "publicación" de matriz actualizada al hacer coincidir las ID, es decir, los comentarios / La matriz de me gusta puede terminar vacía de vez en cuando, por lo que me gustaría aplicar el condicionamiento de que verificará si está indefinido o no. Si no está definido, debería devolver el valor de una matriz vacía; de lo contrario, debería ocurrir la acción filter(), ¿sería esto posible? He estado atascado en esto por un tiempo, por lo que agradecería mucho cualquier ayuda.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Prueba esto:

 const posts = [{ _id: 1, message: 'this is post one', likes: [{ _id: 1111 }, { _id: 2222 }], comments: [{ _id: 3333 }, { _id: 4444 }] }]; const comments = [{ _id: 3333, message: 'this is comment 1' }, { _id: 4444, message: 'this is comment 2' }]; const likes = [{ _id: 1111, user: 'Peter' }, { _id: 2222, user: 'John' }]; const newPosts = posts.map((post = {}) => ({ ...post, likes: likes.filter((like = {}) => post.likes.find((likeItem = {}) => likeItem._id === like._id) ).map(like => like._id), comments: comments.filter((comment = {}) => post.comments.find((commentItem = {}) => commentItem._id === comment._id) ).map(comment => comment._id), })); console.log(newPosts);

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!