Удалить пары повторяющихся соседних элементов массива(js)

Удалить пары повторяющихся соседних элементов массива(js)

исходный массив arr = [10, 10, 10, 10, 10, 32, 22, 22, 41, 50, 50];

ожидаемый массив arr = [10, 32, 41];


Ответы (2 шт):

Автор решения: Zhihar

Алгоритм простой:

  1. пройти по всем индексам массива

  2. сравнивать значение по текущему индексу и по следующему (учесть, что следующего индекса может и не быть, если текущий - последний), т.е. сравнить соседние элементы

  3. если значения не совпадают - добавлять первое значение в новый массив

  4. если значения совпадают перепрыгивать через 1 элемент и делать 2)

→ Ссылка
Автор решения: UModeL

Возможно, что существуют более новые и короткие способы, но этот вариант, на мой взгляд, понятнее:

let arr = [10, 10, 10, 10, 10, 32, 22, 22, 41, 50, 50];

for (let i = arr.length - 1; i > 0; i--) {
  if (arr[i] == arr[i - 1]) {
    arr.splice(i - 1, 2);
    i -= 1;
  }
}

console.clear(); console.log('arr: ', arr);

→ Ссылка