Javascript 反转阵列-了解解决方案

Javascript 反转阵列-了解解决方案,javascript,arrays,Javascript,Arrays,我一直在研究雄辩的JS,无法解决“反转数组”的问题 该问题有一些参数,例如无法使用arr.reverse。无论如何,在适当的位置反转同一阵列的解决方案让我措手不及,我正在寻找人帮助打破它 function reverseArrayInPlace(arr) { var length = (Math.floor(arr.length))/2; for (var i = 0; i < length; i++) { var old = arr[i]; arr[i] = a

我一直在研究雄辩的JS,无法解决“反转数组”的问题

该问题有一些参数,例如无法使用arr.reverse。无论如何,在适当的位置反转同一阵列的解决方案让我措手不及,我正在寻找人帮助打破它

function reverseArrayInPlace(arr) {
  var length = (Math.floor(arr.length))/2;

  for (var i = 0; i < length; i++) {
    var old = arr[i];
    arr[i] = arr[arr.length - 1 - i];
    arr[arr.length - 1 - i] = old;
 }
  return arr;
}
功能反转arrayinplace(arr){
变量长度=(数学楼层(arr.length))/2;
对于(变量i=0;i
我觉得这就是故障:

function reverseArrayInPlace(arr) {
  var length = (Math.floor(arr.length))/2;

  for (var i = 0; i < length; i++) {
    var old = arr[i];                  // var old now equals 1
    arr[i] = arr[arr.length - 1 - i]; //  5 - 1 - 0 = 4. Arr[i] = 4
    arr[arr.length - 1 - i] = old;   // 4th position of arr = 1
                                    // new arr is 4,2,3,1,5 ?
 }
  return arr; 
}


 var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
功能反转arrayinplace(arr){
变量长度=(数学楼层(arr.length))/2;
对于(变量i=0;i

这个解决方案是有效的,所以我的逻辑显然是错误的。我哪里做错了

正如波蒂在评论中指出的那样:


数组索引从零开始,因此
arr[4]
5
,而不是
4


正如波蒂在评论中指出的那样:


数组索引从零开始,因此
arr[4]
5
,而不是
4


数组索引从零开始,所以
arr[4]
5
,而不是
4
。噢,哇,我真傻。我被甩了,因为长度是5减去1。不过,现在这很有道理。感谢manArray索引从零开始,所以
arr[4]
5
,而不是
4
。哇,我真傻。我被甩了,因为长度是5减去1。不过,现在这很有道理。谢谢你,伙计