2010-12-01 4 views
0
function giveValue(n){ 
    ["r"+n]=5; 
} 
giveValue(10); 

あなたはそのアイデアを得ます。["var" +1] = someValue - これのようなことはできますか?

私は、似たような名前の変数が一握りしかなく、末尾の数値が変わっています。 switch文を使うのは、いくつかの変数を数回使っても問題ありませんが、この特定のプロジェクトでは私は狂ってしまいます。

var r2="lol"; 
var someVar=eval("r"+2); 
//someVar=="lol" 

私はこのようなことができるかどうかは疑問でしたが、割り当ての左にある動的な参照を使用しています。

可能ですか?

+0

アレイには何が問題なのですか? 'r2'の代わりに' r [2] 'と入力するのはずっと難しいですか? –

+0

あまりにも遅すぎるとしましょう。 – navand

+0

これはeval()が意図したものではありません。 – Babiker

答えて

3

あなた本当にが、これは動作するはずです、それを行うにしたい場合:

function giveValue(n){ 
    window['r'+n] = 5; 
} 
giveValue(10); 

console.log(r10) 

しかししてください、はしないでくださいそれを!

あなたは本当にuse arraysする必要があります!

+0

私はこれができるような何かを考え出した。ありがとうございました。すべてのアラームの回答を確認した後、コードを変更して配列を使用するだけですが、これが起こる可能性があることを知っておくとよいでしょう。 – navand

+0

@エリック:あまりにも遅れて、あなたはモンスターを解き放った!野生のもう一つの恐ろしいスクリプト! – Gareth

+0

@navand:あなたは2つの答えのうち1つを受け入れることができますか? – Eric

2

最善の方法は、配列を作成することですがrと呼ばれる:

var r = []; 
r[2] = 5; 
+0

私の質問は、今や実用性よりも好奇心に関するものです。それは配列なしで行うことができますか? – navand

+0

確かに、あなたは狂っている! – Gareth

+0

@navad:配列は実用的でないだけでなく、** sane **;) – delnan

関連する問題