次のような状況があります。
var varable_1=10;
var variable_2=20;
.....
var variable_n=10000;
function update_varable(variable){
....some code.....
}
update_variable('variable_1');update_variable('variable_2')...などを呼び出して、これらの変数をそれぞれ更新する必要があります。
出来ますか?
次のような状況があります。
var varable_1=10;
var variable_2=20;
.....
var variable_n=10000;
function update_varable(variable){
....some code.....
}
update_variable('variable_1');update_variable('variable_2')...などを呼び出して、これらの変数をそれぞれ更新する必要があります。
出来ますか?
関数内で変数を渡したい場合update_variable
は、例の引用符を削除する必要があります。やり方はいろいろありますが、簡単なものを載せておきます。関数内で複数の変数を渡すこともできます。
デモはこちら
var varable_1=10;
var variable_2=20;
var variable_n=10000;
function update_variable(x){
x = 300 //some new value
return x;
}
そして呼び出し:
variable_1 = update_variable(varable_1);
(関数名の一部の行で「i」が欠落しています。「update_varable」です)
^
missing "i"
配列はタスクにより適していると思います。
ただし、変数名が var1、var2 .. varN のような場合は、このコードを eval 関数で使用できます。
var var1 = 10;
var var2 = 20;
function update_var(variable) {
return variable += 1;
}
function main() {
for (var i = 1; i < 3; i++) {
eval("var" + i + " = update_var(var" + i + ")");
eval("console.log(var" + i + ");");
}
}
更新関数の引数として文字列を使用する必要がある場合eval
は、関数内で使用して、文字列の背後にある実際の変数を取得できます。
function update(varName) {
eval(varName + " += 1;");
}
function update_varable(variable){
variable += 10;
return variable;
}