@dmitry2000

Как уникализировать массив объектов?

Массив из строчек по типу let arr = ['Один', 'Два', 'Два', 'Три']
можно уникализоровать с помощью arr = Array.from(new Set(arr));
А если, к примеру, массив объектов
let arr = [
                { label: 'Критичная', value: 'critical' },
                { label: 'Средняя', value: 'medium' },
                { label: 'Не критичная', value: 'low' },
                { label: 'Не критичная', value: 'low' },
                { label: 'Не критичная', value: 'low' }
            ];

Можно ли с ним проделать то же самое, убрать лишние объекты по значению или ключу?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
[...new Map(arr.map(n => [ n.value, n ])).values()]

или

Object.values(arr.reduce((acc, n) => (acc[n.value] = n, acc), {}))

или

arr.filter((n, i, a) => n === a.find(m => m.value === n.value))

или

Array.from(new Set(arr.map(n => n.value)), n => arr.find(m => m.value === n))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы