latest log

酩酊状態で書いたエンジニアポエムです。酩酊状態で読んでください。

JavaScript の Array#sort で return 0 すると要素の順番は不定になります

qiita.com を拝見してました。心当たりがあるのでメモ程度に。

JavaScript の Array#sort は仕様的に非安定ソートで、実際もそうです。実装により異なる結果が得られます。

より具体的には、 [...].sort(function(a, b) { return 0; }); と評価関数の中で return 0 してしまうと要素の順番は保証されません。
return 0 を使わずに記述してください。

この問題については、 http://ofb.net/~sethml/is-sort-stable.html を参照していただくと学びがあります。


以下は僕のツイートを Array#sort で検索した時にでてくる駄文です。見事にいい感じに苦しんでますね。みなさんは気をつけてください。?

↑ これ後日修正されました

↑ s/ソースアルゴリズム/ソートアルゴリズム/

不定、それはパルプンテ

不定は「何が起きてもおかしくない」「恐らく貴方の想像を超える結果をもたらす」という意味で使っています。