我已经在本网站和其他网站上看到过这个问题的答案,但我不是要用另一组代码来寻找问题的答案 - 我试图理解为什么这个特定代码不能按预期工作。任何帮助将不胜感激。
任务是创建一个反转数组顺序的函数。这个任务的限制是我不能使用内置的反向数组方法,我不能创建第二个数组,只是复制原始。我认为这段代码可行,但它没有,我无法弄清楚原因。提前谢谢。
var reverseArrayInPlace = function(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var placeHolder = array[i];
array [i] = array[length - i - 1];
array[length - i - 1] = placeHolder;
}
};
答案 0 :(得分:0)
如评论中所述,您需要定义length
或使用array.length
。
var reverseArrayInPlace = function(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var length = array.length;
var placeHolder = array[i];
array [i] = array[length - i - 1];
array[length - i - 1] = placeHolder;
}
};
var arr = [1, 2, 3, 4, 5];
reverseArrayInPlace(arr);
console.log(arr);