Задать вопрос
@Mirrrta

Как правильно взять данные из объектов из массива?

Есть массив такого вида

[
{name: 'Иван', age: 10},
{name: 'Таня', age: 15},
{name: 'Саша', age: 20},
{name: 'Таня', age: 15},
]


Нужно получить на выходе 2 массива такого вида (без дубликатов)
[
{id: 1, name: 'Иван'},
{id: 2, name: 'Таня'},
{id: 3, name: 'Саша'},
]


[
{id: 1, age: '10'},
{id: 2, age: '15'},
{id: 3, age: '20'},
]


Заранее спасибо.
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const uniqueValues = arr.reduce((acc, n) => (
  Object.keys(n).forEach(k => (acc[k] = acc[k] ?? new Set).add(n[k])),
  acc
), {});

const
  [  names,  ages ] =
  [ 'name', 'age' ].map(k => Array.from(
    uniqueValues[k] ?? [],
    (n, i) => ({ id: -~i, [k]: n })
  ));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы