これは本当に興味深いと思います。
いつ-var x = [1, 50, 2, 4, 2, 2, 88, 9, 10, 22, 40];
その後、正しくソートされx.sort();
ません
の場合var x = ["dog","apple","zebra","cow"];
、x.sort();
正しくソートされます。
1回の呼び出しでそれらをソートする適切な関数は何ですか?
これは本当に興味深いと思います。
いつ-var x = [1, 50, 2, 4, 2, 2, 88, 9, 10, 22, 40];
その後、正しくソートされx.sort();
ません
の場合var x = ["dog","apple","zebra","cow"];
、x.sort();
正しくソートされます。
1回の呼び出しでそれらをソートする適切な関数は何ですか?
ECMAScript 15.4.4.11 Array.prototype.sort(comparefn) に従って22
、並べ替えはデフォルトでアルファベット順に行われ、前に来ることを意味します4
。ドキュメントでは実際にはかなり複雑になっていますが、基本的にはこのようになります。
それらを数値的に並べ替えたい場合は、次のような独自の比較関数を提供する必要があります。
x.sort(function(a,b){return a-b;});
関数は、 の場合は負の数を返し、a < b
等しい場合はゼロを返し、 の場合は正の数を返す必要がありますa > b
。
独自の並べ替えメソッドを渡して、好きなように並べ替えるだけです。それらを文字列や数値などとして扱うことができ、昇順または降順で並べ替えることができます。さらに、オブジェクトを渡し、特定のメンバーに基づいてそれらのオブジェクトを並べ替えることができます。ジェネリックsort()
メソッドがデフォルトで役立つことは非常にまれです。