vlad008
@vlad008
Продуктовый аналитик

Как преобразовать отсортированный массив элементов в массив с описанием последовательностей?

Преобразование отсортированного массива элементов в массив объектов вида
{key,with,before}
Пример
function([a,a,a,a,b,b,b,b,c,c]){
 ...
} // [{key:a,with:0,before:3},{key:b,with:4,before:7},{key:c,with:8,before:9}]
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
@Aves
Для подобных преобразований удобно использовать reduce:
[a,a,a,a,b,b,b,b,c,c].reduce(function(s, e, i) {
    var t = s.pop() || {key: e, with: i};
    if (t.key !== e) {
        s.push(t);
        t = {key: e, with: i};
    }
    t.before = i;
    s.push(t);
    return s;
}, []);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы