ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の「sort()」関数が数値を並べ替えるときに予期しない結果を生成するのはなぜですか?これはどのように修正できますか?

JavaScript の「sort()」関数が数値を並べ替えるときに予期しない結果を生成するのはなぜですか?これはどのように修正できますか?

Mary-Kate Olsen
リリース: 2024-12-27 04:29:10
オリジナル
861 人が閲覧しました

Why Does JavaScript's `sort()` Function Produce Unexpected Results When Sorting Numbers, and How Can This Be Fixed?

整数の配列のソート: 数値ソートを理解する

整数の配列のソートは簡単そうに見えますが、特定の癖が発生する可能性があります。予想外の結果に。次のコードを考えてみましょう:


numArray = numArray.sort();<br>


直感的には、このコードは配列を昇順に並べ替えることを期待するかもしれません。 : [99、104、140000]。ただし、出力は予期しないものになります: [104, 140000, 99]。これは、sort 関数のデフォルトの動作が要素を文字列として扱い、アルファベット順に並べ替えるためです。

この問題を解決するために、JavaScript は並べ替えプロセスをカスタマイズするメカニズムを提供します。新しい比較関数を導入することで、要素の並べ替え方法を指定できます。

整数の場合、数値並べ替え関数を定義できます:


 は - を返しますb;<br>});<br>


この並べ替え関数は、単純に 1 つの整数を別の整数から減算し、結果は次のようになります。正または負の値。正の値は、最初の引数 (a) が 2 番目の引数 (b) より大きいことを示し、その逆も同様です。

この関数を sort メソッドに渡すことで、配列を数値的に効果的に並べ替えることができます。



これで、配列は正しくソートされました要素の整数値に基づいて昇順で並べられます。カスタム比較関数を活用することで、配列の並べ替え方法を制御し、望ましい結果を達成できます。

以上がJavaScript の「sort()」関数が数値を並べ替えるときに予期しない結果を生成するのはなぜですか?これはどのように修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
前の記事:ビット単位の Js - (データ型 - BigInt) 次の記事:変数を JavaScript オブジェクト リテラルのキーとして使用するにはどうすればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート