ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の Array.sort() メソッドはすべてのブラウザで安定していますか?

JavaScript の Array.sort() メソッドはすべてのブラウザで安定していますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 01:42:30219ブラウズ

Is JavaScript's Array.sort() Method Stable Across All Browsers?

ブラウザ間での Array.sort() メソッドの安定性

はじめに

配列のソートは JavaScript の基本的な操作です。ただし、Array.sort() メソッドの安定性はブラウザによって異なります。

ECMA スクリプトと安定性

ECMA スクリプト仕様では、特定の並べ替えアルゴリズムが定義されていません。または、ソートを安定させるかどうかを指定します。これは、異なるブラウザーが異なるアプローチを実装する可能性があり、その結果、安定性特性が異なる可能性があることを意味します。

特定のブラウザー間の安定性

  • IE 6-8: 安定版
  • Firefox 3:
  • 不安定
  • Firefox >= 3:
  • 安定
  • Chrome
  • 70:
  • 不安定
  • Chrome >= 70:
  • 安定
  • Opera
  • 10: 不安定
  • オペラ >= 10: 安定
  • Safari 4: 安定
エッジ (大きな配列):

不安定

テスト ケースの例

<code class="javascript">function Pair(_x, _y) {
    this.x = _x;
    this.y = _y;
}
function pairSort(a, b) {
    return a.x - b.x;
}
var check = [];
for (var i = 0; i < 100; ++i) {
    check.push(new Pair(Math.random() * 3 + 1, ++y));
}
check.sort(pairSort);</code>

並べ替えメソッドの安定性を実証するために、値のペアを含むテスト ケースを使用します。作成できます:

並べ替えが安定している場合、値は最初に x 値に基づいて並べ替えられ、次に同じ x 値を持つ値の元の順序になるように y 値に基づいて並べ替えられます。保存されています。逆に、不安定な並べ替えでは、同じ x 値を持つ値の順序が異なる可能性があります。

以上がJavaScript の Array.sort() メソッドはすべてのブラウザで安定していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。