问题描述
我有 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);