Чтобы удалить повторяющиеся значения в массиве объектов в JavaScript, вы можете использовать несколько методов. Вот несколько распространенных подходов:
- Использование объекта Set. Один из самых простых методов — использование объекта Set, который автоматически удаляет повторяющиеся значения из массива. Однако объект Set работает только с примитивными типами данных, поэтому если у вас есть массив объектов, вам необходимо использовать дополнительный шаг для преобразования объектов в строковое представление. Вот пример:
const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }, // Duplicate
];
const uniqueArray = Array.from(new Set(array.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArray);
- Использование метода filter(). Другой подход — использовать метод
filter()вместе с методомfindIndex()для удаления дубликатов на основе определенного свойства объекты. Вот пример:
const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }, // Duplicate
];
const uniqueArray = array.filter((obj, index, self) => {
return index === self.findIndex((el) => (
el.id === obj.id && el.name === obj.name
));
});
console.log(uniqueArray);
- Использование временного объекта. Вы также можете создать временный объект, чтобы отслеживать уникальные объекты, используя определенное свойство в качестве ключа. Вот пример:
const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }, // Duplicate
];
const uniqueArray = Object.values(
array.reduce((acc, obj) => {
const key = obj.id + '|' + obj.name;
if (!acc[key]) {
acc[key] = obj;
}
return acc;
}, {})
);
console.log(uniqueArray);
Это всего лишь несколько методов, которые можно использовать для удаления повторяющихся значений из массива объектов в JavaScript. Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования.