@leyarthemes

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

Есть, например, вот такой массив:

var arr = ["Label1", "Label2", "Label3", "Label4", "Label2"];

Нужно на выходе получить что-то вроде вот такого массива:

var arr = ["Label1", {"label": "Label2", "indexes": [1, 4]}, "Label3", "Label4"];
  • Вопрос задан
  • 556 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const result = Object
  .entries(arr.reduce((acc, n, i) => ((acc[n] = acc[n] || []).push(i), acc), {}))
  .map(([ label, indexes ]) => indexes.length > 1 ? { label, indexes } : label);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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