快速的JavaScript问题。在下面的代码片段中,我正在反转传递给函数
在第一段代码中,尽管在循环中我正在操作变量
另一方面,如果我将
reverseArray
的数组arr
。在第一段代码中,尽管在循环中我正在操作变量
newArr
,它保持了arr
的初始值,但看起来本地变量arr
仍在改变。因此,当arr.length
达到值3
时,循环失败。function reverseArray (arr) {
var newArr = [];
var inArr = arr;
console.log(inArr);
for (i = 0; i < arr.length; i++) {
newArr[i] = inArr.pop(i);
}
return newArr;
}
reverseArray(["A", "B", "C", "D", "E", "F"]);
// OUTPUT: ["F", "D", "E"]
另一方面,如果我将
arr.length
存储在本地变量 numArr
中,那么它就能完美地反转该数组。function reverseArray (arr) {
var numArr = arr.length;
var newArr = [];
for (i = 0; i < numArr; i++) {
let inArr = arr;
newArr[i] = inArr.pop(i);
}
return newArr;
}
reverseArray(["A", "B", "C", "D", "E", "F"]);
// OUTPUT: ["F", "E", "D", "C", "B", "A"]
我错过了什么?
pop()
不需要任何参数。 - Ry-