@leyarthemes

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

Здравствуйте, есть, например, вот такой массив:
var arr = ["Label1", "Label2", "Label3", "Label4", "Label2"];

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

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

Войти через центр авторизации
Похожие вопросы
08 апр. 2020, в 21:19
10000 руб./за проект
08 апр. 2020, в 20:18
35000 руб./за проект
08 апр. 2020, в 19:41
2000 руб./за проект