Kritish Bhattarai
Kritish Bhattarai

Reputation: 1661

Filtering an array of objects based on another array of objects in javascript

I have an array of messages like

oldMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} ]

and another array as

newMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} , {id:3,message:'message_C'} ]

How do I get only the part {id:3,message:'message_c'} by comparing oldMessages with newMessages? I must compare them based on their id only.

Upvotes: 0

Views: 65

Answers (1)

palaѕн
palaѕн

Reputation: 73906

You can easily do this using array .find() method like:

const oldMessages = [ {id:1,message:'message_A'} , {id:2,message:'message_B'} ]
const newMessages = [ {id:1,message:'message_A'},{id:2,message:'message_B'} , {id:3,message:'message_C'} ]
const data = newMessages.find(r=> !oldMessages.map(x=>x.id).includes(r.id))

console.log( data )

Upvotes: 1

Related Questions