@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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Stream Labs Москва
До 150 000 ₽
Myagi Минск
от 3 000 до 4 000 $
Salesbeat Москва
от 150 000 до 250 000 ₽
17 февр. 2020, в 00:30
1500 руб./за проект
16 февр. 2020, в 22:28
2000 руб./за проект