問題

今日、JSのタスクを使って作業すると、ボックスのJavaScriptには配列の強力な比較があることがわかりました。

 console.log(["a","b"] > ["a","aa"] && ['a','aa'] < ['a', 'cc']) // true
 

これは、文字列を持つ2次元配列のショートカットソートにつながります

 console.log([["a","aa"],['b','bb'],["a","c"],['b',"ab"],['b',"a"]].sort())
/*
[ [ 'a', 'aa' ],
  [ 'a', 'c' ],
  [ 'b', 'a' ],
  [ 'b', 'ab' ],
  [ 'b', 'bb' ] ]*/
 

Javascriptは自動的に同様の最初の要素を持つサブ配列を注文します。 今私はJavaScriptが2つの配列をどのように比較するのか正式な定義を探しています。

  ベストアンサー

Array#sort を取ると、パラメータcompareFunctionの使用に次の説明が得られます。

compareFunctionが指定されていない場合、未定義の配列要素はすべて文字列に変換し、UTF16コード単位の文字列を比較することによってソートされます。たとえば、 "バナナ"は "チェリー"の前に来ます。数値ソートでは、9は80より前に来ますが、数値は文字列に変換されるため、 "80"はUnicode順に "9"の前に来ます。すべてのundefined要素は配列の最後にソートされます。

結果は、要素にカンマが含まれていない限り、少なくとも最初の要素に対してソートされたような配列です。

  同じタグがついた質問を見る

javascriptarrays