こんにちは、javascript ループで変数の負荷を作成する必要があるため、ループが 0 から始まり、ループの終わりまでに 5 回循環するとします。次の変数を定義する必要があります。
variable_0
variable_1
variable_2
variable_3
variable_4
誰でもこれを行う方法を教えてもらえますか?
こんにちは、javascript ループで変数の負荷を作成する必要があるため、ループが 0 から始まり、ループの終わりまでに 5 回循環するとします。次の変数を定義する必要があります。
variable_0
variable_1
variable_2
variable_3
variable_4
誰でもこれを行う方法を教えてもらえますか?
window
これにより、オブジェクトに登録することで「グローバル」変数が作成されます。
for (var i = 0; i != 5; ++i) {
window['variable_' + i] = null;
}
それを行うのは本当に良いことではありませんが =/ より良い方法は、動的プロパティを作成するオブジェクトを定義することです。
var obj = {}
for (var i = 0; i != 5; ++i) {
obj['variable_' + i] = null;
}
console.log(obj.variable_0); // null
配列を使用しない理由:
var variable = [];
本当に 5 つの変数を作成したい場合は、それらのスコープを選択する必要があります。最も簡単なのはおそらくwindow
です。次に、角かっこの構文を使用できます。
for(var i=0;i<5; i++){
window["variable_" + i] = 0; // or anything really!
}
現在、次の変数を使用できます。
window.variable_1 = 123
可変名の変数は、次の一部としてのみ作成できますObject
。
obj['variable_' + i] = value;
関数スコープの変数に相当するものはありませんが、もちろんできます:
function foo() {
var obj = {};
for (var i = 0; ... ) {
obj['variable_' + i] = value;
}
}
@Jack で示されているように、window
の代わりにグローバル オブジェクトを使用することで、グローバル変数を偽造できます (ただしすべきではありません) 。obj
もちろん、ほとんどの場合 (変数を区別するために数値を使用しているため)、実際にすべきことは配列を使用することです。
var myvar = [];
for (var i = 0; i < n; ++i) {
myvar[i] = ...;
}