解決済

clip!clip!
Ads By Google

JavaScriptで分岐したい条件が30個くらいある時にどのように分岐をさせるのがスマートなやり方でしょうか。

お世話になります。当方JavaScript初心者です。
ある変数Xを取得したのですが、この変数の内容が30個以上あります。変数の内容を仮にa,b,c,d,e,f,g・・・とします。
この変数の内容によってaなら「aに関する内容」を表示させ、bなら「bに関する内容」を表示する、という形で条件を30個ほど分岐させたいのですが、どのような形で分岐させればやり方的にスマートなのでしょうか。
if文を30個作った方がJavaScriptは長いけど処理は軽いとか、そういう事でしたら教えて頂けると助かります。
それ以外でもスマートで軽い処理の方法があればお教え頂けますとうれしいです。何卒よろしくお願いいたします。

2007-10-07 22:11の質問
いか    
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(1)

1.

2007-10-08 16:04:59ベスト
javascriptでも連想配列って使えたんですね。
X_answers["a"]="aに関する内容";

JavaScript講座 5章 配列


この質問に遭遇するまですっかり忘れてました。
思い出すキッカケをくださりありがとうございます。

すっきりしそうです。
ありがとうございます。

これを参考にチャレンジしてみますね。

Ads By Google

コメント(8)

2007-10-07 23:25:59

内容がわからないので何とも言えないですが、Xをオブジェクトにしておいて、条件判断せずに、

X.doSomething();
と一文で済ますのが幸せだと思います。JSだけでなくオブジェクト指向な言語一般の話ですが・・・。

純粋に30個並列して分岐したいのなら、switch文ですが、そういう問題でもない気がします。。。

2007-10-08 12:18:56

>>#1
前から気になってたんですけど
「幸せ」って、プログラマーの隠語ですか??
happyもあるだろうけどどっちかというとcoolとかsmart的な意味合いだったり、とか。

#3.  
2007-10-08 22:12:35

★オニキス☆さん。コメントありがとうございます。
オブジェクト指向というのは色々な言語で見かけますが、当方どの言語もまんべんなく初心者で、今の御説明だけでは、幸せになれそうにありません。良かったらもう少しヒントを頂けたらと思います。

変数をXとして、内容は、りんご、おれんじ、こんぴゅーたー、はこ、ほん、とします。

これに対応したringo,orange,computer,box,bookの文字列を取り出したい時、
・どのように定義して、
・どのように取り出せばいいのか、
出来ればコードを示して教えて頂けると幸せになれそうです。お時間あられましたら何卒よろしくお願い致します。

#4.  
2007-10-08 22:22:03

万年床生活者さん。コメントありがとうございます。
私的にはプログラムなどで何かが理解できたり、拙いプログラムが思い通りに動作してくれたりすると、いわゆるぷちランナーズ・ハイのような状態になっている気がします。
幸せな脳内物質が分泌されているのかもしれません。昔はブログのカスタマイズがツボにはまった時そういう感覚でした。
初心者ですがそんな感じで「幸せ」を捉えております。
幸せに関する★オニキス☆さんのご意見もお伺いしたいものです。

2007-10-09 00:56:41

>>#2,#4
「幸せ」というのはプログラマの隠語なのかどうかわからないですが、「コーディング上、楽」という意味で使われることが多いと思います。

>>#3
>りんご、おれんじ、こんぴゅーたー、はこ、ほん
これらが同列に扱われる、例えばクイズの答えのようなものなら、回答1のようにすればいいと思います。

#1の意味は、

var ringo=function(){};
ringo.prototype={
 showMyself:function(){
   alert("りんご");
 }
};
var orange=function(){};
orange.prototype={
 showMyself:function(){
   alert("おれんじ");
 }
};
みたいにクラスを定義しておいて、「showMyself」という名前のメソッドを統一しておけば、
var X=receiveX();//例えば、X=new ringo();
X.showMyself();
みたいに、呼び出し側の区別だけで、コードが汚れない、という話です。

2007-10-09 00:57:31

それぞれに意味があるのなら、分類した方がいいと思います。例えば、fruit.orangeみたいに・・・。

#7.  
2007-10-09 08:06:02

★オニキス☆さん。ご丁寧にありがとうございます。
私のレベルが低いため、教えていただいたコードは、まだ雰囲気しかわかりませんが、定義の段階で挙動を指定しておくと、変数を取得した後のコードがかなりすっきりしますね。定義部分もスマートな感じがします。
if文で目的のものをなんとなく作ってみていたんですが、変数を取得した後のコードがぐっちゃぐちゃになっています(笑)。
お教えいただいたものを参考にして、少しずつ勉強して、幸せになりたいと思います。
ありがとうございましたm(_ _)m。

2007-10-10 18:32:08

おおおおお
読み応えあったあああああ

私には全然理解できないけど^^;

トラックバック(2)

トラックバックURL: