如何比较两个对象数组并更改两个数组中找到的值?

Col*_*iel 1 javascript

假设我有两个对象数组:

let array1 = [
          {
           id: 1,
           name: 'snow'
          },
          {
           id: 4,
           name: 'jo'
          },
          {
           id: 8,
           name: 'bran'
          },
          {
           id: 12,
           name: 'gondo'
          },
          {
           id: 13,
           name: 'peter'
          }
        ]

let array2 = [
      {
       id: 3,
       name: 'brim'
      },
      {
       id: 4,
       name: 'not-jo'
      },
      {
       id: 8,
       name: 'not-bran'
      },
      {
       id: 13,
       name: 'spleen'
      }
    ]
Run Code Online (Sandbox Code Playgroud)

我想找到array2中与id匹配的所有对象与array1,并更改其名称值以匹配array1中的名称值.

在我的伪代码中:

array1.forEach((person)=> {
 if(person.id is equal to person.id in array2){
   person.name = person.name in array1
 }
})
Run Code Online (Sandbox Code Playgroud)

Jay*_*hav 6

试试这个 :

array2.map(function(x){ 
       var result=array1.filter(a1=> a1.id==x.id);
       if(result.length>0) { x.name=result[0].name;}
       return x })
Run Code Online (Sandbox Code Playgroud)