http://www.phoenix-c.or.jp/~s-moon/sub411.htm で降順で表示されているテーブル内の数値を昇順で表示したくてコードの


if(val < val2) { pos = j; val = val2; }
       を
if(val > val2) { pos = j; val = val2; }


に変え昇順にすることができました。
しかしながら、テーブル内の数値を変えると例えば以下のように表示されてしまいます。

「10,1000,20,200,50,5000」

これを

「10,20,50,200,1000,5000」

に変えるにはどうしたらよいのでしょうか?
どこのコードをどのように変更したらよいか教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/06/01 22:16:42
  • 終了:2007/06/01 22:41:47

回答(2件)

id:studioes No.1

studioes回答回数522ベストアンサー獲得回数612007/06/01 22:30:58

ポイント40pt

if(parseInt(val) > parseInt(val2)) { pos = j; val = val2; }

 どぞ。

 valやval2は文字列型のため、最初の文字の大小関係のみでソートされてしまいます。

 parseIntすることで、数値型になります。

http://q.hatena.ne.jp/

id:masterkton

ありがとうございます。

2007/06/01 22:41:17
id:taknt No.2

きゃづみぃ回答回数13538ベストアンサー獲得回数11982007/06/01 22:33:14

ポイント30pt

http://www.tagindex.com/kakolog/q4bbs/201/320.html

if((val * 1) > (val2 * 1)) { pos = j; val = val2; }

文字列扱いでソートされてしまっているので

*1 することにより 数値扱いにしたらいいですね。

id:masterkton

なるほど、ありがとうございます。

2007/06/01 22:41:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません