在设置变量时对数组进行排序后,原始数组也会被排序

After sorting an array while setting a variable, the original array gets sorted too

本文关键字:数组 排序 原始 变量 设置      更新时间:2023-09-26

可能的重复项:
在这种情况下,为什么要修改原始排序?

我有 2 个数组。我想将第二个变量设置为第一个变量的排序版本。

var _myArray = ["N","T","A","W","Z","X"];
var _array02 = _myArray.sort();
document.write(_myArray+'<br>'+_array02);

应该发生什么:N,T,A,W,N,X<br>A,N,T,W,X,Z

相反会发生什么:A,N,T,W,X,Z<br>A,N,T,W,X,Z

这是 JS 中的设计使然吗?如果是这样,我如何实现我想要的?

sort()

对数组进行排序。如果希望原始数组不变,请对副本进行排序:

var _myArray = ["N","T","A","W","Z","X"];
var _array02 = _myArray.slice().sort();
_myArray +''n'+_array02
/*  returned value: (String)
N,T,A,W,Z,X
A,N,T,W,X,Z
*/