CGI-BBS > JAVA/JavaScript > JavaScript > 表のソートで桁が違う数値の並び替えができない


カレッヂ
カレッヂ


質問者 niwatori  投稿日 2005/7/22(金) 19:45:04
初めて投稿させていただきます niwatoriです

http://www.phoenix-c.or.jp/~s-moon/sub411.htm
のページを参考にし、表をソートしようと
試みましたが、桁が違う数値(例えば7、200、55、4だと
ソートしたら7、55、4、200のようになり上一桁の値でしか
ソートされてません。200、55、7、4のように
数値全部でソートするには上記のサイトの
どこをどう書き換えればいいのでしょうか?

ご教授お願いしますm(__)m

【習熟度】多少の改造ができる

回答者 sim  [削除]  投稿日 2005/7/25(月) 20:42:55
> http://www.phoenix-c.or.jp/~s-moon/sub411.htm

このサイトでは正常に動作しているようですが。
どのように作成したのでしょうか?
質問者 niwatori  [削除]  投稿日 2005/7/25(月) 21:22:07
回答ありがとうございます
そのサイトでは桁が一定なので
ちゃんと動作しているおうです

if(nval < nval2) { pos = j; nval = nval2; }
の前に

nval = eval(val);
nval2 = eval(val2);


を入れてみたら少しはましになったんですけど、

行が多い表を処理してるためか
4、5回クリックしないと完全にソートされません

どなたかどんな方法でもいいので
表をソートする技術の持ち主のかた
いませんでしょうか?
回答者 sim  [削除]  投稿日 2005/7/25(月) 22:13:23
なるほど。

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

このように変えてみてはいかがでしょうか?
質問者 niwatori  [削除]  投稿日 2005/7/26(火) 00:13:46
おお!感動しました!
ちゃんと一回でソートされました
しかも一瞬で

今PHPとJavaScriptでAmazon関係をやってたところです
simさん どうもありがとうございました。
質問者 niwatori  [削除]  投稿日 2005/7/26(火) 01:38:32
すみません、また別の質問ですが、

科目の順位  総合点 数学 理科 社会 英語 国語  X
○○○     455  97  85  80  98  95  9506
△△△     451  86  97  99  89  80  7654
○○○     450  98  98  85  75  94  …
○○○     411  70  88  73  84  96  …
○○○     405  75  81  75  99  75  …

のテーブルでたとえば数学の97と英語の98(つまり同じ行にある数学と英語の値)を
掛け算した答えをXの列のようにして、最初にロードしたときに
書き出せないでしょうか?
回答者 sim  [削除]  投稿日 2005/7/26(火) 02:13:44
書き出せますね。
やり方は色々あると思いますが、今回のものに合わせて使うのであれば

replaceChild()

というメソッドを使うと良いのかも知れません。

>最初にロードしたときに
と言うことなので、onloadをイベントハンドラに使ってあげればいいかと思います。
質問者 niwatori  [削除]  投稿日 2005/7/28(木) 21:58:30
忙しくて遅くなりました

DOMは初心者なのでreplaceChild()を調べても
それだけではプログラム組めません
勉強してからきます

あとこんなサイトも見つけました
http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-notes/sort_rows.html

質問者 niwatori  [削除]  投稿日 2005/7/28(木) 22:24:15
あ、それと
小数(4.57とか4.12とか)がソートされない
新たな問題が発生しましたが、

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

に変更したら解決できました。
回答者  [削除]  投稿日 2006/1/6(金) 11:22:40
それなら、古旗一浩さんの「改訂第3版JavaScriptポケットリファレンス」(本体価格2180円)
を購入されてはいかがでしょう。
DOMの事が載っていますよ。(実は僕が持っています。w)

返信(回答)する

 


Web裏技