@maksmaksimovich

Как из массива объектов получить массив уникальных значений определённого свойства?

Есть массив с объектами вида:

[{id: 1},{id: 2},{id: 2},{id: 3}]

Нужно получить массив вида:

[1,2,3]

То есть, записывать в результирующий массив значения в единственном экземпляре, без повторений.
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как делать надо: [...new Set(arr.map(n => n.id))].

И как не надо:

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

// или

Array.from(new Map(arr.map(({ id }) => [ id, id ])).values())

// или

arr.map(n => n.id).filter((n, i, a) => i === a.indexOf(n))

// или

arr.reduce((acc, n) => (acc.includes(n.id) || acc.push(n.id), acc), [])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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