Как вернуть новый массив объектов только с уникальным id вложенного объекта?

https://codesandbox.io/s/relaxed-resonance-3r2cf?f...

Вот из такого массива нужно вернуть новый массив без дублей по user.id

const arr = [
  {
    message: "фыа",
    user: {
      id: 0
    }
  },
  {
    message: "dhfas",
    user: {
      id: 2
    }
  },
  {
    message: "asidfaks",
    user: {
      id: 2
    }
  },
  {
    message: "ouosbop",
    user: {
      id: 3
    }
  },
  {
    message: "nvcbksad",
    user: {
      id: 0
    }
  }
];
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values(Object.fromEntries(arr.map(n => [ n.user.id, n ])))

Или, если в результирующий массив должны попадать те из объектов с одинаковыми id, что расположены в исходном массиве первыми:

Object.values(arr.reduce((acc, n) => (acc[n.user.id] ??= n, acc), {}))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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