Удалить объект из массива, если есть повторяющиеся значения.JavaScript - PullRequest
0 голосов
/ 20 сентября 2018

Учитывая массив [{fruit1:"apple"},{fruit2:"banana"},{fruit3:"apple"}], как бы удалить элемент, который имел повторяющееся значение.В этом примере я хотел бы сохранить только одну из пар ключ-значение, имеющих «яблоко», удалив этот элемент из массива.

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете уменьшить массив до Карта .Для каждого объекта извлеките пару ключ / значение с помощью Object.entries().Если ключ карты (например, apple) уже существует, используйте значение в качестве ключа новой записи карты и исходный ключ в качестве значения.Затем вы можете преобразовать его обратно в массив, используя Array.from(), и переключить ключи и значения:

const data = [{fruit1:"apple"},{fruit2:"banana"},{fruit3:"apple"}];

const result = Array.from(
  data.reduce((m, o) => {
    const [k, v] = Object.entries(o)[0];

    return m.has(v) ? m : m.set(v, k);
  }, new Map()),
  ([k, v]) => ({ [v]: k })
);

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...