2016-05-06 9 views
2

私はこのコードを使用して、配列と配列のソートバージョンのソートされていないバージョンをプリントアウトしようとしている:1つの配列をソートする方法は?

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 

出力

にそれをしたいが、どのように私はそれをやってからそれを止めるのですか?

それの私の知識は、あなたがArray#sliceと元の配列のコピーに並べ替えを適用する必要があり

+0

'sort'は、配列を所定の場所に並べ替えます。並べ替える前に配列をクローンする必要があります。 [JavaScriptの値で配列をコピーする]を参照してください(http://stackoverflow.com/q/7486085/218196) –

+0

@FelixKlingそれを答えてください:) –

+0

可能な複製:http://stackoverflow.com/q/7486085/ 1715004 –

答えて

3

素晴らしいではありませんので、ところで、私は自分自身を教えJavaScriptのよ、

slice()メソッドは、配列の一部の浅いコピーを新しい配列オブジェクトに返します。

ソートが適切に機能するためです。

sortedArray = array.slice(); 
関連する問題