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

221
Views
Insertar matrices anidadas si la matriz anidada no existe

Estoy tratando de insertar nuevos datos si no existen en la matriz anidada, hasta ahora puedo agregar si no existen, pero está eliminando los datos anteriores, cualquier ayuda sería apreciada.

arreglos

 const posts = [ { _id: 1 , message: 'this is post one' , likes: [ { id: 111221, user: 'random 1' } , { id: 2223422, user:'random 2' } ] , comments: [ { id: 332233, message: 'random comment' } , { id: 2344444, message:'another random comment' } ] }] 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' } ]

Rendimiento esperado

 const newPost = [ { _id: 1 , message: 'this is post one' , likes: [ { id: 1111, user: 'Peter' } , { id: 111221, user: 'random 1' } , { id: 2223422, user:'random 2' } , { id: 2222, user: 'John' } ] , comments: [ { id: 3333, message: 'this is comment 1' } , { id: 4444, message: 'this is comment 2' }, { id: 332233, message: 'random comment' } , { id: 2344444, message:'another random comment' } ] }]

lo que he probado

 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)), })) console.log(newPosts)
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tal vez estoy demasiado cansado, pero simplemente fusionaría las matrices. Su publicación no mencionó que necesitaba verificar si los comentarios en la variable comments ya podrían existir en publicaciones [0]. comentarios ( _id: 1 ).

 const posts = [{ _id: 1, message: 'this is post one', likes: [{ id: 111221, user: 'random 1' }, { id: 2223422, user: 'random 2' }], comments: [{ id: 332233, message: 'random comment' }, { id: 2344444, message: 'another random comment' }] }] 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 addTo = (posts, comments, likes) => { let newPostInstance = [...posts][0]; newPostInstance.comments = [...newPostInstance.comments, ...comments]; newPostInstance.likes = [...newPostInstance.likes, ...likes]; return newPostInstance; } const newPost = addTo(posts, comments, likes); console.log(newPost)

about 4 years ago · Juan Pablo Isaza Report

0

const posts1 = [ { _id: 1 , message: 'this is post one' , likes: [ { id: 111222221, user: 'random 1' } , { id: 2223422, user:'random 2' } ] , comments: [ { id: 3322222233, message: 'random comment' } , { id: 2344444, message:'another random comment' } ] }] const posts = [ { _id: 1 , message: 'this is post one' , likes: [ { id: 111221, user: 'random 1asdasdasd' } , { id: 2223422, user:'random 2asdasdasd' } ] , comments: [ { id: 332233, message: 'rasdasdasd' } , { id: 2344444, message:'asdasdasdwwwwww' } ] }] if(posts.filter(r => r.comments) !== posts1.filter(r => r.comments)){ const a = posts.map(({likes,_id,message, ...o}) => ({...o.comments})) const b = posts1.map(({likes,_id,message, ...o}) => ({...o.comments})) const c = posts.map(({comments,_id,message, ...o}) => ({...o.likes})) const d = posts1.map(({comments,_id,message, ...o}) => ({...o.likes})) const newComments = [...a,...b] const newLikes = [...c,...d] const returnFlattenObject = (arr) => { const flatObject = {}; for(let i=0; i<arr.length; i++){ for(const property in arr[i]){ flatObject[`${property}_${i}`] = arr[i][property]; } }; return flatObject; } posts.map(({comments,likes, ...o}) => ({ ...o, comments: returnFlattenObject(newComments), likes: returnFlattenObject(newLikes) })) } else { console.log('exists') }

resultado

 [{…}] 0: comments: 0_0: {id: 332233, message: 'rasdasdasd'} 0_1: {id: 3322222233, message: 'random comment'} 1_0: {id: 2344444, message: 'asdasdasdwwwwww'} 1_1: {id: 2344444, message: 'another random comment'} [[Prototype]]: Object likes: 0_0: {id: 111221, user: 'random 1'} 0_1: {id: 111222221, user: 'random 1'} 1_0: {id: 2223422, user: 'random 2'} 1_1: {id: 2223422, user: 'random 2'} [[Prototype]]: Object message: "this is post one" _id: 1 [[Prototype]]: Object length: 1 [[Prototype]]: Array(0)
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!