使arr1与arr中,id重复的arr1替换arr,然后arr1多余的对象id清空结合得到一个新数组

使arr1与arr中,id重复的arr1替换arr,然后arr1多余的对象id清空结合得到一个新数组
arr = [
    {
        id: "1",
        name: "1"
    },
    {
        id: "2",
        name: "2"
    },
    {
        id: "3",
        name: "3"
    }
]

arr1 = [
    {
        id: "1",
        name: "3"
    },
    {
        id: "4",
        name: "4"
    },
    {
        id: "5",
        name: "5"
    }
]
//使arr1与arr中,id重复的arr1替换arr,然后arr1多余的对象id清空得到的结果大概是这样的,
temp = [
    {
        id: "1",
        name: "3"
    },
    {
        id: "",
        name: "4"
    },
    {
        id: "",
        name: "5"
    }
]

      arr1.map((item) => {
        arr.some((item2) => item2.id == item.id) ? item.id : (item.id = '');
      });
      console.log(arr1);

这是我自己用比较复杂的方法做的,有什么比较简单的方法吗

let temp = [];
for(let i=0;i<arr1.length;i++){
    for(let j=0;j<arr.length;j++){
        if(arr1[i].id==arr[i].id){
            temp.push(arr1[i])
        }else{
            arr1[i].id="";
            temp.push(arr1[i]);            
        }
    }
}

temp = new Set(temp);
console.log("temp",[...temp]);