2

これは本当に興味深いと思います。

いつ-var x = [1, 50, 2, 4, 2, 2, 88, 9, 10, 22, 40];

その後、正しくソートされx.sort();ませ

の場合var x = ["dog","apple","zebra","cow"];x.sort(); 正しくソートされます。

1回の呼び出しでそれらをソートする適切な関数は何ですか?

4

3 に答える 3

1

ECMAScript 15.4.4.11 Array.prototype.sort(comparefn) に従って22、並べ替えはデフォルトでアルファベット順に行われ、前に来ることを意味します4。ドキュメントでは実際にはかなり複雑になっていますが、基本的にはこのようになります。

それらを数値的に並べ替えたい場合は、次のような独自の比較関数を提供する必要があります。

x.sort(function(a,b){return a-b;});

関数は、 の場合は負の数を返し、a < b等しい場合はゼロを返し、 の場合は正の数を返す必要がありますa > b

于 2013-05-30T08:35:49.707 に答える
0

独自の並べ替えメソッドを渡して、好きなように並べ替えるだけです。それらを文字列や数値などとして扱うことができ、昇順または降順で並べ替えることができます。さらに、オブジェクトを渡し、特定のメンバーに基づいてそれらのオブジェクトを並べ替えることができます。ジェネリックsort()メソッドがデフォルトで役立つことは非常にまれです。

于 2013-05-30T08:35:25.223 に答える