Есть два массива:
const arr1 = [{code: "admin_user_view"}, {code: "admin_role_view"},{code: "admin_role_full_access"}, {code: "admin_newrole_full_access"}]
const arr2 = [{code: "admin_user_view", id: 1}, {code: "admin_role_view", id: 2}]
В итоге, из двух надо получить массив, в котором будут только уникальные объекты по полю code, но при этом приоритет отдается объектам с id.
То есть, в итоге вот так:
arr3 = [{code: "admin_user_view", id: 1}, {code: "admin_role_view", id: 2},{code: "admin_role_full_access"}, {code: "admin_newrole_full_access"}]
На практике массивы намного больше. Я сделал так, но хочется как-то покрасивее.
arr1.forEach(p=>{
if(!arr2.some(per=>per.code == p.code)) {
arr2.push(p);
}
});
arr3 = arr2;