变量名是否可以由for循环中的数组值确定?

时间:2013-06-24 06:20:11

标签: javascript function variables for-loop

是否可以在for-loop中使用数组变量值作为新变量名(或者换句话说,等式的左侧可以由迭代中的预定义值确定)?

for (var i = 0; i < array.length; i++) {
    // we all know this is possible:
    blabla[i] = apple;
    // but I'm wondering if there's a way we can achieve this:
    example(someVar);
}

function example(name) {
   // [name] = banana;
   name = banana;
}

显然,我在上面的代码段中执行此操作的方式,值banana始终被分配给变量name。虽然我怎么能这样做但不太确定?

2 个答案:

答案 0 :(得分:2)

变量是属性,可以是全局对象(在浏览器中:window),也可以是某些其他对象。所以你可以这样做:

for (var i = 0; i < array.length; i++) {
   window[array[i]] = '[something]';
}

var someObj = {};
for (var i = 0; i < array.length; i++) {
   someObj[array[i]] = '[something]';
}

答案 1 :(得分:0)

function myVar(val) {
this.value=val;
}

var array=new Array( new myVar(1),new myVar(2),new myVar(3));

for (var i = 0; i < array.length; i++) {
    example(array[i]);
    alert(array[i].value); // now they are 0,0,0
}

function example(name) {
   name.value = 0;
}