使用另一个变量值更新javascript变量

时间:2013-07-09 06:35:54

标签: javascript

我的情况如下。

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')....等来更新每个变量。

有可能吗?

5 个答案:

答案 0 :(得分:2)

如果要在函数update_variable中传递变量,则需要删除示例中的引号。有很多方法可以做到,我发布一个简单的方法。您还可以在函数内传递多个变量。

演示 here

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"

答案 1 :(得分:1)

我认为数组更适合这项任务。

但如果您的变量名称类似于var1,var2,则可以将此代码与eval函数一起使用。varN:

    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 + ");");
        }
    }

答案 2 :(得分:1)

如果必须使用字符串作为更新函数的参数,可以在函数内部使用eval来获取字符串后面的实数变量:

function update(varName) {
    eval(varName + " += 1;");
}

答案 3 :(得分:1)

让我们看看这里的事实:

  • 你的变量有一个模式:variable_x所以,对于我们的算法,它只是一个字符串:'variable_'+ x
  • 所有变量都将附加到一个对象,更湿润它是一个声明的对象,或一个全局变量,例如:a,myVars或 window
  • 可以使用索引器访问javascript中的任何对象,因此myObject.myVar也可以像myObject ['myVar']一样编写。

现在让我们看看算法:

function update(variable, value){
        window[variable] = value;
}

您可以按照自己的意愿调用它:

update('variable_1', 450.25);

答案 4 :(得分:-1)

function update_varable(variable){
   variable += 10;

return variable;
}