gpt4 book ai didi

javascript - 将 array.sort 的结果存储在另一个变量中

转载 作者:行者123 更新时间:2023-12-05 06:41:56 25 4
gpt4 key购买 nike

这似乎是一个简单的问题,但我找不到太多关于此的信息。

var array1 = new Array(4, 3, 1, 2, 0, 5);
var array2 = array1;
array2.sort(function(a, b) {
return a - b;
})

预期行为:array2 已排序,array1 处于从 4 开始的原始顺序。

实际结果:两个数组都已排序。

如何对 array1 进行排序 - 同时维护 array1 并将排序结果存储在 array2 中?我认为执行 array2 = array1 会复制变量,而不是引用它。但是,在 Firefox 的控制台中,两个数组都显示为已排序。

最佳答案

这是因为 var array2 = array1; 您正在对对象进行新引用,因此对 array2 的任何操作都会影响 array1,因为它们基本上是同一个对象。

JS 不提供 propner clone 函数/方法,所以试试这个被广泛采用的解决方法:

var array1 = new Array(4, 3, 1, 2, 0, 5);
var array2 = JSON.parse(JSON.stringify(array1));
array2.sort(function(a, b) {
return a - b;
});

希望对您有所帮助:)

关于javascript - 将 array.sort 的结果存储在另一个变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38844679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com