我有一个称为reverseArray的Javascript函数,该函数将数组作为参数,并返回一个新数组,该数组的值与输入数组的顺序相反。我想创建一个名为reverseArryInPlace的函数,该函数会将输入数组的值更改为相反的顺序。
function reverseArray(inputArray) {
var outputArray = [];
for (var i = inputArray.length - 1; i >= 0; i--)
outputArray.push(inputArray[i]);
return outputArray;
}
function reverseArrayInPlace(inPlaceInputArray) {
inPlaceInputArray = reverseArray(inPlaceInputArray);
console.log('Inside reverseArrayInPlace: ' + inPlaceInputArray);
return inPlaceInputArray;
}
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log('Outside reverseArrayInPlace: ' + arrayValue);
// Expected Value: [5, 4, 3, 2, 1]
这是我执行以下代码块时得到的结果:
Inside reverseArrayInPlace: 5,4,3,2,1
Outside reverseArrayInPlace: 1,2,3,4,5
在reverseArrayInPlace函数中,arrayValue变量已按预期反转。为什么当我在reverseArrayInPlace函数之外引用相同的变量时又回到原始顺序?
最佳答案
如果您想将其反向,则必须将其反向。
function reverseArrayInPlace(array) {
for (let i = 0, j = array.length - 1; i < j; i++, j--)
[array[i], array[j]] = [array[j], array[i]];
}
const a = [1,2,3,4,5];
reverseArrayInPlace(a);
console.log(a);
关于javascript - 在JavaScript中反转数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43486578/