为什么这个reverseArrayInPlace函数不起作用?

时间:2018-01-17 17:50:41

标签: javascript

我已经在本网站和其他网站上看到过这个问题的答案,但我不是要用另一组代码来寻找问题的答案 - 我试图理解为什么这个特定代码不能按预期工作。任何帮助将不胜感激。

任务是创建一个反转数组顺序的函数。这个任务的限制是我不能使用内置的反向数组方法,我不能创建第二个数组,只是复制原始。我认为这段代码可行,但它没有,我无法弄清楚原因。提前谢谢。

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;
  }
};

1 个答案:

答案 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);