如何在不改变原始数组的情况下对数组进行排序?
2022-08-29 23:30:01
假设我想要一个返回输入数组的排序副本的排序函数。我天真地尝试了这个
function sort(arr) {
return arr.sort();
}
我用这个测试了它,这表明我的方法正在改变数组。sort
var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a); //alerts "1,2,3,3,3,4,5,7,7"
我也尝试过这种方法
function sort(arr) {
return Array.prototype.sort(arr);
}
但它根本不起作用。
有没有一种直接的方法可以解决这个问题,最好是一种不需要手动滚动我自己的排序算法或将数组的每个元素复制到新元素中的方法?