如何使用.reverse()
创建数组的反向副本?我不能理解这件事。
这是我的函数:
function flipArray(inputArray){
let origArray = inputArray;
let flippedArray = origArray.reverse();
console.log(inputArray);
console.log(origArray);
console.log(flippedArray);
}
flipArray([1,2,3]);
我会期待这个..。
[1, 2, 3]
[1, 2, 3]
[3, 2, 1]
或者这个..。
[1, 2, 3]
[3, 2, 1]
[3, 2, 1]
但这是我得到的..。
[3, 2, 1]
[3, 2, 1]
[3, 2, 1]
为什么甚至连inputArray都被颠倒了?除了for
循环之外,还有其他方法可以做到这一点吗?
发布于 2018-09-09 22:22:30
Array.prototype.reverse
就地反转数组。它修改原始数组并返回对它的引用。为了在原始数组被反转之前创建其副本,您可以使用Array.prototype.slice
,例如:
function flipArray(inputArray){
let origArray = inputArray.slice(0);
let flippedArray = inputArray.slice(0).reverse();
console.log(inputArray);
console.log(origArray);
console.log(flippedArray);
}
flipArray([1,2,3])
现在生产
[1,2,3]
[1,2,3]
[3,2,1]
https://stackoverflow.com/questions/52245350
复制相似问题