Задать вопрос
@ignis21

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

Есть массив в котором подряд идут разные значения, как удалить следующие значение если оно повторяет предыдущее?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Собрать новый массив:

const newArr = arr.filter((n, i, a) => !i || a[i - 1] !== n);

Удалить из существующего массива:

for (let i = arr.length; --i > 0;) {
  if (arr[i] === arr[i - 1]) {
    for (let j = i; ++j < arr.length; arr[j - 1] = arr[j]) ;
    arr.pop();
  }
}

// или

arr.reduceRight((_, n, i, a) => i && n === a[i - 1] && a.splice(i, 1), null);

// или

arr.splice(0, arr.length, ...arr.filter((n, i, a) => !i || a[i - 1] !== n));

// или

arr.length -= arr.reduce((acc, n, i, a) => (
  a[i - acc] = n,
  acc + (i && n === a[i - 1 - acc])
), 0);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Petja
@Petja
Веб Мастер: *nix, js, php, html, css, design
reduce
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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