[removed] Merge Two Arrays of Objects, Only If Not Duplicate (Based on Specified Object Key)

前端 未结 3 691
情书的邮戳
情书的邮戳 2020-12-20 11:48

Background

Say I have an initial array of objects:

var initialData = [
    {
        \'ID\': 1,
        \'FirstName\': \'Sally\'
    },
    {
              


        
3条回答
  •  太阳男子
    2020-12-20 12:34

    I think the alternative solution proposed by @slider in the accepted answer, would be something like this:

    const oldData = [
      { id: 1, name: 'John' },
      { id: 2, name: 'Jane' },
      { id: 3, name: 'Mike' },
    ];
    
    const newData = [
      { id: 2, name: 'Jane' },
      { id: 4, name: 'Rick' },
      { id: 5, name: 'Jim' },
    ];
    
    const usersMap = new Map();
    
    oldData.forEach(user => usersMap.set(user.id, user));
    
    newData.forEach(user => {
      const exists = usersMap.has(user.id);
      
      if (!exists) {
        usersMap.set(user.id, user);
      }
    })
    
    usersMap.forEach(user => console.log(user))

提交回复
热议问题