@lionsbet83

Как создать объект из массива объектов c одинаковыми ключами?

Дан массив объектов:

[{ name: "Dill" , surname: "Jones" , age: 25 }, { name: "Dill" , surname: "Clint", age: 25},  { name: "Dill" , surname: "Gomes", age: 25}]

У объектов есть одинаковые ключи с одинаковыми значениями.
Задача: собрать объект, который будет содержать только одинаковые значения, в данном примере это выглядело бы так:

{name: "Dill", age: 25, surname: null}
  • Вопрос задан
  • 339 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const obj = Object.fromEntries(Object
  .entries(arr.reduce((acc, n) => (
    Object.entries(n).forEach(([ k, v ]) => (acc[k] ??= new Set).add(v)),
    acc
  ), {}))
  .map(n => [ n[0], n[1].size === 1 ? [...n[1]][0] : null ])
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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