2016-05-06 30 views
2

我想打印出数组的未排序的版本,并使用此代码数组的排序版本:如何对一个数组进行排序?

var sortArrayNumber = function(a, b) { 
 
    return a - b; 
 
}; 
 

 
var array = [5, 2, 1044, 3, 126]; 
 
var sortedArray = []; 
 

 
sortedArray = array; 
 

 
sortedArray.sort(sortArrayNumber); 
 

 
document.write(array + " and " + sortedArray);

这不是我要的实际代码使用,我只是测试它。 当我测试使用的jsfiddle它,它输出

2,3,5,126,1044 and 2,3,5,126,1044 

但我希望它输出

5,2,1044,3,126 and 2,3,5,126,1044 

那么,我该如何阻止它这样做?

顺便说一句,我自己教自己的JavaScript,所以我对它的了解并不是很大

+0

'sort'将数组排序到位。在排序之前,您需要克隆数组。请参阅[按JavaScript值复制数组](http://stackoverflow.com/q/7486085/218196) –

+0

@FelixKling使其成为答案:) –

+0

可能的重复项:http://stackoverflow.com/q/7486085/ 1715004 –

回答

3

您需要应用的排序上的原始阵列Array#slice的副本,

slice()方法将数组的一部分的浅表副本返回到新的数组对象中。

因为排序工作到位。

sortedArray = array.slice(); 
相关问题