首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript array.reverse()在幕后是如何工作的?

JavaScript array.reverse()在幕后是如何工作的?
EN

Stack Overflow用户
提问于 2018-09-09 22:12:47
回答 1查看 249关注 0票数 1

如何使用.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循环之外,还有其他方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52245350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档