如何从第二个对象中的每个对象复制技能属性,并根据属性 id 为第一个数组中的每个对象设置该技能属性? (JS)

问题描述

我有 2 个对象数组。对于每个对象,这两个数组具有相同的长度和相同的 id 属性

const arr1 = [{id:1,name:'Dave',email:'email1@gmail.com'},{id:2,name:'Jane',email:'email2@gmail.com'}]
const arr2 = [{id:1,profession:'programmer',skill:'JS'},profession:'Sales person',skill:'sales'}]

如何从 arr2 复制每个对象的技能属性,并通过检查相关的属性 id 将其设置在对象的第一个数组中?

解决方法

For each public void onResume() { player.setPlayWhenReady(true); super.onResume(); //initiateExoPlayerPlayer(); if(mLastPosition!=0 && player!=null){ player.seekTo(mLastPosition); } } 中的值,尝试find arr1 中的相应值并相应地更新技能属性:

arr2

完整片段:

arr1.forEach(v1 => v1.skill = arr2.find(v2 => v1.id === v2.id)?.skill);

,

你可以这样做。

const arr1 = [{id: 1,name: "Dave",email: "email1@gmail.com"},{id: 2,name: "Jane",email: "email2@gmail.com"}];
const arr2 = [{id: 1,profession: "programmer",skill: "JS"},profession: "Sales person",skill: "sales"}];

console.log(arr1);

arr2.forEach((el2) => {
  let result = arr1.find((el1) => el1.id === el2.id)
  if (result) {
   result.skill= el2.skill;
  }
})

console.log(arr1);