2011-11-08 18 views
2

組み込みJS関数array.sort()がどのように内部的に機能するか知っていますか?私はそれが....数値に文字列を変更するとはどういう意味などからJavascriptソート配列関数の性能

var keys = new Array(); 
keys.sort(); 
+2

btw、 'new Array'は悪いですが、代わりに' [] 'リテラル構文を使用してください。 – hugomg

+6

アルゴリズムは[ここ](http://ecma262-5.com/ELS5_HTML.htm#Section_15.4.4.11)で指定されています。それ以外に、あなたが知りたいことが他に何か分かりません。 –

+0

質問に答えるには:いいえ、 '.sort'は要素値を変更しません** **入力を変更する関数を指定しない限り**。例: 'keys.sort(function(x、y){x.moo = 1337; y.cowsay =" bar ";})' –

答えて

6

MDN docs for sort():compareFunction(比較関数)が与えられていない場合、要素は辞書で文字列を文字列にそれらを を変換して比較することにより、ソートされている

(「辞書」 または「電話帳」、数字ではない)順番である。例えば、「80」 は辞書順に「9」の前に来ますが、数値ソート9にどのようなアルゴリズムが使用されているよう

80の前には this questionの答えを参照してくださいしています。

+0

+1。このことを読んで、後で生産中のバグを追跡するのが難しくなってしまった。あまりにも悪いのは、答えではなく質問だけを好きにすることができます。 –

関連する問題