Что означает «array.length -1»?
array.length возвращает размер массива, нумеруя элементы с единицы, а сам массив нумеруется с нуля, поэтому результат этой функции будет, фактически, на 1 больше реального размера. Если не вычесть единицу, то на последней итерации выйдем за пределы массива. Поняли?
Массив в десять элементов нумеруется с нуля до девяти, поэтому длина минус один.
Правильно писатьfor (let i = 0; i < arr.length; i ++)