Пусть дан некоторый массив, например, такой:
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]);
}
Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите следующий элемент массива.
Модифицируйте предыдущую задачу так, чтобы в каждой итерации цикла выводилась сумма текущего и следующего элемента массива.
Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите два предыдущих элемента массива.
Модифицируйте предыдущую задачу так, чтобы в каждой итерации цикла выводилась сумма двух предыдущих элементов и текущего элемента массива.
Дан массив с числами. Переберите его циклом и в каждой итерации цикла выведите сумму предыдущего, текущего и следующего элементов массива.