Я пытаюсь понять, почему одна версия моего кода работает, а другая - нет. Я определил номера переменных глобально, поэтому я подумал, что если я запустил функцию sumArray (), то она будет передавать элементы, но всегда возвращала 0. И только когда я ОПРЕДЕЛЯЛ ее СНОВА ближе к функции sumArray (), она вычисляла правильно.
Запрещает ли использование номеров переменных для функции printReverse () ее повторное использование в sumArray ()? Если вы закомментируете var numbers = [2, 2, 3];
, вы увидите, что в консоли он возвращает 0.
var numbers = [1, 2, 3];
var result = 0;
function printReverse() {
var reversed = [];
while (numbers.length) {
//push the element that's removed/popped from the array into the reversed variable
reversed.push(numbers.pop());
}
//stop the function
return reversed;
}
//print the results of the function printReverse()
console.log(printReverse());
var numbers = [2, 2, 3];
function sumArray() {
//pass each element from the array into the function
numbers.forEach(function(value) {
//calculate the sum of var result + the value passed through and store the sum in var result
result += value;
});
//return and print the sum
return result;
}
//print the results of the function sumArray()
console.log(sumArray());