昇順 / 数値 (function を使って記述)

データの数 = 8個

もとのデータ配列 [6,7,3,0,2,9,1,4]

予測される結果は [0,1,2,3,4,6,7,9]



解説

基本的に JavaScript の sort()関数は, デフォルトとして「数」を文字列に変換して文字コード順に並び替えます.

1. データ(8個の配列)を読み込む
データを読み込んだ瞬間にブラウザはすべての文字の文字コード番号を把握している.
  UTF-8 の場合(10進数/16進数)
     0 = 48 / 30h
     1 = 49 / 31h
     2 = 50 / 32h
     3 = 51 / 33h
     4 = 52 / 34h
     5 = 53 / 35h
     6 = 54 / 36h
     7 = 55 / 37h
     8 = 56 / 38h
     9 = 57 / 39h

2. Sort() メソッドを使用して「8個のデータを昇順に並べ替えよ」と命令.
  配列.sort();
  配列.sort(比較関数(関数の内容));

3. function()で任意の名前をつける
それは → function(左,右)
対象の数を比較する. 左から右を減算したときの結果が「正の数」ならば, 対象の数値がマージされる(左右の数データが入れ替わる).
しかし左から右を減算したときの結果が「負の数」ならば, 対象の数値はマージされない(スルーして次の対象を比較する).

4. { } の中にプログラムを書いて, 最後に「document.write」させる.
プログラムの内容: 実行させると第1比較がスタートする.

全体の sort() 演算作業は次のように行われる.

 もとのデータ [6,7,3,0,2,9,1,4]
 第1マージ [6,3,7,0,2,9,1,4]
 第2マージ [3,6,7,0,2,9,1,4]
 第3マージ [3,6,0,7,2,9,1,4]
 第4マージ [3,0,6,7,2,9,1,4]
 第5マージ [0,3,6,7,2,9,1,4]
 第6マージ [0,3,6,2,7,9,1,4]
 第7マージ [0,3,2,6,7,9,1,4]
 第8マージ [0,2,3,6,7,9,1,4]
 第9マージ [0,2,3,6,7,1,9,4]
 第10マージ [0,2,3,6,1,7,9,4]
 第11マージ [0,2,3,1,6,7,9,4]
 第12マージ [0,2,1,3,6,7,9,4]
 第13マージ [0,1,2,3,6,7,9,4]
 第14マージ [0,1,2,3,6,7,4,9]
 第15マージ [0,1,2,3,6,4,7,9]
 第16マージ: 終了 [0,1,2,3,4,6,7,9] ここで JavaScript は止まる.