Попытка отфильтровать массив объектов путем исключения объектов, у которых есть определенное свойство, которое уже существует в другом объекте (дубликат). Решение, какой объект удалить, должно основываться на другом свойстве.
Пример:
Для массива объектов, который может выглядеть следующим образом, цель состоит в том, чтобы отфильтровать все «пользовательские» дубликаты и сохранить один с самым старым свойством «date».
const arr = [
{user: 'Alex', date: '1540801929945'},
{user: 'Bill', date: '1640801929946'},
{user: 'Carl', date: '1740801929947'},
{user: 'Alex', date: '1840801929948'},
]
Ожидаемый результат:
filteredArr = [
{user: 'Alex', date: '1540801929945'},
{user: 'Bill', date: '1640801929946'},
{user: 'Carl', date: '1740801929947'},
]
Я управлял базовой фильтрацией, которая работает только для хранения уникальных объектов.
const filteredArr = arr.reduce((unique, o) => {
if(!unique.some(obj => obj.user === o.user) {
unique.push(o);
}
return unique;
},[]);
Хотя я не могу понять, что делать, чтобы в случае дубликата «самый старый» объект оставался, а самый последний удалялся.
Большое спасибо за Вашу помощь! Очень ценят.