Получение соседей элементов в массиве JavaScript

Пусть дан некоторый массив, например, такой:

let arr = [1, 2, 3, 4, 5];

Давайте выведем элементы этого массива на экран, используя обычный цикл for:

let arr = [1, 2, 3, 4, 5]; for (let i = 0; i < arr.length; i++) { console.log(arr[i]); }

А теперь давайте переделаем наш код так, чтобы выводились не текущие элементы, а предыдущие:

let arr = [1, 2, 3, 4, 5]; for (let i = 0; i < arr.length; i++) { console.log(arr[i - 1]); }

Как вы видите, для решения задачи мы просто отнимаем от счетчика число 1, тем самым получая ключ предыдущего элемента.

Здесь, однако, кроется проблема: в самом начале цикла значение счетчика будет равно нулю и мы попытаемся получить элемент массива с ключом -1. Такого элемента, конечно же, нет, и в результате мы получим значение undefined.

В общем-то, это логично просто геометрически: самый первый элемент массива не имеет предыдущего. Говоря другими словами, в нашем массиве 5 элементов, но только 4 из них имеют предыдущий элемент.

То есть предыдущих элементов всегда на 1 меньше, чем элементов в массиве. Логично в таком случае, что и цикл должен сделать на одну итерацию меньше. Поэтому просто начнем цикл с 1, а не с 0, и проблема будет решена:

let arr = [1, 2, 3, 4, 5]; for (let i = 1; i < arr.length; i++) { console.log(arr[i - 1]); }

Понятно, что просто тупо выводить предыдущие элементы - бестолковая операция. Давайте сделаем что-нибудь более осмысленное. К примеру, найдем сумму предыдущего и текущего элементов массива и выведем их на экран:

let arr = [1, 2, 3, 4, 5]; for (let i = 1; i < arr.length; i++) { console.log(arr[i - 1] + arr[i]); }

Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите следующий элемент массива.

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

Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите два предыдущих элемента массива.

Модифицируйте предыдущую задачу так, чтобы в каждой итерации цикла выводилась сумма двух предыдущих элементов и текущего элемента массива.

Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите сумму предыдущего, текущего и следующего элементов массива.