在一个函数中使用全局声明的变量是否会阻止在另一个函数中使用该变量?

我试图理解为什么我的代码的一个版本有效,而另一个版本不起作用。我已经全局定义了var数,所以我想如果我运行函数sumArray(),那么它会传入元素,但它总是返回0。只有当我再次定义它更接近函数sumArray()时,它才正确计算。


将变量编号用于 printReverse() 函数是否会禁止在 sumArray() 中再次使用它?如果您注释掉,那么您将在控制台中看到它返回0。var numbers = [2, 2, 3];


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());


慕姐4208626
浏览 116回答 1
1回答

回首忆惘然

(当您注释掉var numbers = [2,2,3])该方法修改原始数组,因此当您到达 sumArray 函数时,您没有剩余的元素。pop相反,您可以使用反向方法numbers.reverse(); //this can completely replace the printReverse function
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript