1
私は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);
ソリューションは動作しますので、明らかに私のロジックがオフになっています。どこが間違っていますか?
アレイインデックスはゼロから始まるので、 'arr [4]'は '4'ではなく' 5'です。 – Pointy
ああ私はばかだ。 .lengthが5で1を引いたので、私は捨ててしまいました。それは今でも完璧な意味があります。ありがとう –