我的情况如下。
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(variable, value){
window[variable] = value;
}
您可以随意调用它:
update('variable_1', 450.25);
function update_varable(variable){
variable += 10;
return variable;
}