1) Под el подразумевается в данном случае аргумент, который будет передан функции. Название может быть произвольным - хоть arr,хоть el,хоть любое другое - на что хватит воображения автору.
Ведь получается, что под el подразумевается каждый элемент массива
- неверно. В данном случае функции передается массив arr, значит под el подразумевается массив arr.
2) можете заменить строчку кода на
result.push(sumEl), ничего не поменяется.
КАЖДЫЙ индекс элемента массива result равен результату суммы элементов массива arr.
- не совсем верно. Это звучит как "на каждой итерации добавить значение в массив result по индексу, который равен индексу текущей итерации". Усложненный вариант, пуш вполне подходит.
3)Заходим на mdn и читаем -
Метод reduce() применяет функцию reducer к каждому элементу массива (слева-направо), возвращая одно результирующее значение.
То есть на каждой итерации редьюс возвращает результат действий над текущим элементом массива. То есть на второй итерации мы возвращаем 1+2(3), и именно благодаря этому наша функция reduce на следующей итерации в аргумент sum получает 3, прибавляет к нему следующий элемент - 3, и возвращает их сумму - 6. Третья итерация "ловит" 6 ,прибавляет текущий элемент 4 и передает дальше их сумму 10.
return result просто возвращает результат выполнения нашей функции , чтобы можно было использовать этот результат вне функции. В данном случае вернувшийся результат передается в console.log.