Ребята, объясните пожалуйста как это работает?
Все очень просто. Смотрите, у нас есть массив const numbers = [1, 2, 4, 8];. Мы проходим по нему циклом for, при этом заранее не сохраняя длину массива, таким образом, если удалять в цикле каждый раз текущий индекс, то при следующей итерации будет пересчитано условие i < arr.length, но 1 элемент то мы удалили, и следовательно цикл завершится раньше. Чтобы этого не произошло, i уменьшают на 1. В тот момент, когда удаляется элемент, i при следующей итерации «остается на месте».
Это унарный оператор. Он уменьшает переменную на единицуВикипедия