Диапазон элементов, обрабатываемых методомforEach(), устанавливается до первого вызова функцииcallback.
Элементы, добавленные в массив после начала выполнения методаforEach(), не будут посещены функциейcallback.
Если существующие элементы массива изменятся, значения, переданные в функциюcallback, будут значениями на тот момент времени, когда методforEach()посетит их;
удалённые элементы посещены не будут.
Если уже посещённые элементы удаляются во время итерации (например, с помощьюshift()), последующие элементы будут пропущены. (Смотри пример ниже)
Warning: Concurrent modification of the kind described in the previous paragraph frequently leads to hard-to-understand code and is generally to be avoided (except in special cases).
reduce()?! )