Можно использовать reduce
метод. Он проверяет, есть ли свойство с тем же ключом, и если он существует, он создает ключ, в противном случае он ничего не делает:
arr.reduce((a, c)=> {
a[c.productComponentAction.productComponent.offerId] =
a[c.productComponentAction.productComponent.offerId] || {...c};
return a;
}, {})
Пример:
let arr = [{
actionType: 10,
orderItemId: "3205ae52-ab00-4823-a004-da0cda639065",
productComponentAction:{
productComponent:{
offerId: 10002839,
parentOfferId: 10003058,
adoptableProdCompId: undefined
}
}
},
{
actionType: 10,
orderItemId: "3205ae52-ab00-4823-2121-da0cda6390ae",
productComponentAction:{
productComponent:{
offerId: 10002839,
parentOfferId: 10003058,
adoptableProdCompId: undefined
}
}
}];
let filteredList = arr.reduce((a, c)=> {
a[c.productComponentAction.productComponent.offerId] =
a[c.productComponentAction.productComponent.offerId] || {...c};
return a;
}, {})
console.log(Object.values(filteredList));