4

私はこのような変数の束を作成しようとしています:

function l(){
    var a1 = 2,
        a2 = 4,
        a3 = 6,
        a4 = 8,
          .
          .
        a20 = 40;
}

しかし、これには行数が多すぎるため、よりスマートに行う方法を探しています。これは私が思いついたものです:

function l(){
    for(var i=0; i<20; i++){
        var ("a"+i) = 2*i;
    }
}

しかし、それはおそらくうまくいかず、うまくいく (うまくいかない) 場合でも、変数はまだforスコープ内にあります。何か案は?

window["a"+i] or eval(...)

私はそれらをグローバルスコープに入れたくないので、これらは機能しません。

通常は配列で問題ありませんが、これが JavaScript で可能かどうかを実験しているところです。ひょっとしたら、将来、このようなことに遭遇するかもしれません。

4

3 に答える 3

16

これをしないでください。行う。いいえ。行う。これ。配列を使用します。


プログラムでそれらを作成する際に問題が発生したことを考えると、プログラムでそれらをどのように参照すると思いますか?

于 2012-12-09T06:55:26.023 に答える
4

実際のところ、オブジェクトを使用することは良い考えだと思います。

var scope = {}
for (var i=1;i<=20;i++) {
  scope['a'+i] = 'stuff';   
}

その結果、必要なscopeすべての新しく作成された変数を含むオブジェクトが作成されます!

于 2012-12-09T11:30:58.157 に答える