0

evalなしで実行時にJavascriptでvarをアセンブルするにはどうすればよいですか?

var lc = $('.bezeichnung-1').length;
for (var lt = 1; lt <= lc; lt++) {
    eval("var neuerwert"+lt+"=0;"); // this works but I don't want to use it because I read that eval is bad
}


var lc = $('.bezeichnung-1').length;
for (var lt = 1; lt <= lc; lt++) {
    window["var neuerwert"+lt] = 0; // this does not work
}
4

3 に答える 3

7

evalなしで実行時にJavascriptでvarをアセンブルするにはどうすればよいですか?

そうではありませんが、何かのプロパティにすることはできます。

これらが既にグローバル スコープにある場合は、既にプロパティになっています。

var lc = $('.bezeichnung-1').length;
for (var lt = 1; lt <= lc; lt++) {
    window["neuerwert"+lt] = 0;
    // -----^ no `var` keyword
}

それらがグローバルスコープにない場合(あなたにとって良いことです!)、それらをオブジェクトのプロパティにします。

var neuerwert = {
    1: /*...value here...*/,
    2: /*....value here...*/
};

または配列

var neuerwert = [
    /*...value here...*/,
    /*....value here...*/
];

その後

var lc = $('.bezeichnung-1').length;
for (var lt = 1; lt <= lc; lt++) {
    neuerwert[lt] = 0;
}

配列インデックスは から始まるため、配列を使用している場合0は調整が必要になる場合があることに注意してくださいlt

于 2013-07-25T12:42:31.487 に答える
0

あなたは私が信じている配列を使用すべき場所でvarを使用しようとしています

var lc = $('.bezeichnung-1').length;
var neierwert = ();

for (var lt = 1; lt <= lc; lt++) {
    neuerwert[lt]=0; 
}
于 2013-07-25T12:45:27.997 に答える