DEd*_*s57 4 javascript computer-science web
为什么我的函数只返回[3,2,].它应该打印出元素1吗?
function reverseArr(arr) {
var reverse = [];
for (var i = 0; i < arr.length; i++)
reverse.push(arr.pop());
return reverse;
}
console.log(reverseArr([1, 2, 3]));
Run Code Online (Sandbox Code Playgroud)
因为您在arr每次迭代时arr.length都在修改,所以正在改变.试试这个:
function reverseArr(arr) {
var reverse = [], len = arr.length;
for (var i = 0; i < len; i++)
reverse.push(arr.pop());
return reverse;
}
Run Code Online (Sandbox Code Playgroud)
但请注意,这将修改原始数组,这可能与您的意图不同.如果您想保留原始数组,请unshift改用:
function reverseArr(arr) {
var reverse = [], len = arr.length;
for (var i = 0; i < len; i++)
reverse.unshift(arr[i]);
return reverse;
}
Run Code Online (Sandbox Code Playgroud)
或者,你可以使用的组合slice,并reverse在不修改原始返回输入数组的一个新的,颠倒的副本:
function reverseArr(arr) {
return arr.slice().reverse();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |