How can I perform an inner join with two object arrays in JavaScript?

后端 未结 7 1985
闹比i
闹比i 2020-12-10 13:56

I have two object arrays:

var a = [
  {id: 4, name: \'Greg\'},
  {id: 1, name: \'David\'},
  {id: 2, name: \'John\'},
  {id: 3, name: \'Matt\'},
]

var b = [         


        
相关标签:
7条回答
  • 2020-12-10 15:03

    One of the ways how to solve it.

    const a = [
      {id: 4, name: 'Greg'},
      {id: 1, name: 'David'},
      {id: 2, name: 'John'},
      {id: 3, name: 'Matt'},
    ];
    
    const b = [
      {id: 5, name: 'Mathew', position: '1'},
      {id: 6, name: 'Gracia', position: '2'},
      {id: 2, name: 'John', position: '2'},
      {id: 3, name: 'Matt', position: '2'},
    ];
    
    const r = a.filter(({ id: idv }) => b.every(({ id: idc }) => idv !== idc));
    const newArr = b.concat(r).map((v) => v.position ? v : { ...v, position: null });
    
    console.log(newArr);

    0 讨论(0)
提交回复
热议问题