文字 | 数値 |
---|---|
101 13 210 3 34 4035 41 5 | 3 5 13 34 41 101 4035 |
+COL[0]/DATAという記述で、数値データをソートすると、おかしな結果になります。これは数字を文字として扱うために起きることです(パソコンのファイルをファイル名順に並べるときもこのようなことが起きます)。数字を文字として扱った場合と数値として扱った場合の違いを右の表で例示します。
データを数値としてソートするには、+number(COL[0]/DATA)という記述をします。そこで、ソートを実行する際に、その要素のデータタイプによってソート方法を使い分けるようにJavaScriptを改良しましょう。
データタイプによってソート方法を使い分けるJavaScript |
---|
|
sort( )関数を実行する際に、データのタイプも一緒に渡してもらうように引数を一つ増やしました。fldtypeにデータタイプが格納されて、スクリプト中ではif文によって、データタイプが「NUMBER」だった場合とそうでない場合とでorder-by属性の作り方を振り分けます。
(JavaScript)if文 |
---|
if(評価式){評価式が真のときの命令}else{評価式が偽のときの命令} |