配列のソート

【実行画面】

【Source Code】
<script type="text/javascript">
<!--
  color = new Array("red", "white", "black", "green", "blue", "yellow");
  document.write(color + "<br>");
  color.sort();
  document.write(color + "<br>");
  document.write(color.reverse() + "<br>");
// -->
</script>

JavaScript の記述です。
new Array() で色を定義して、ソートして印字します。
color.sort(); で Array クラスのソートメソッドを呼び出します。
次にソートした文字列を逆順に印字してみました。
color.reverse() が color の配列を逆順に並べる Array クラスのメソッドです。

数値のソート

【実行画面】

【Source Code】
<script type="text/javascript">
<!--
  num = new Array(56, 9, 789, 1234);
  num.sort();
  document.write(num + "<br>");
  num.sort(function(a,b){ return a-b; } );
  document.write(num + "<br>");
// -->
</script>

Javascript で数値をソートするときは注意しなければなりません。
それは、数値では無く文字列として比較されるからです。
Array クラスのソートメソッドの実行結果を見ると、先頭の文字の大きさでソートされていることが解るでしょう。
数値のときは比較関数を定義します。
num.sort(function(a,b) ... が比較関数で、a の方が大きいときは正の値を、b の方が大きいときは負の値を返します。
  num.sort(function(a,b){ return a-b; } );

文字列⇒数値のソート

【実行画面】

【Source Code】
<script type="text/javascript">
<!--
  str = "5,13,4,9,21";
  num = str.split(',');
  document.write(num + "<br>");
  num.sort(function(a,b){ return a-b; } );
  document.write(num + "<br>");
// -->
</script>

カンマで区切られた文字列(数字)を切り分けて昇順にソートして印字してみました。
num には str を ',' で切り分けた数値(数字)の配列が格納されます。
  num = str.split(','); 
  document.write(num + "<br>");
Javascript の配列には、数値と文字列の区別が無いので、数値のときは比較関数を定義します。

[Next Chapter ↓]文字列 ⇒ 配列

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(JavaScript)