我一直在通过Eloquent 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;
}
我觉得这就是故障:
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);
解决方案有效,显然我的逻辑是关闭的。我哪里错了?
答案 0 :(得分:0)
Pointy在评论中指出:
数组索引从零开始,因此
arr[4]
为5
,而不是4
。