0

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

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。不太确定我该怎么做?

4

2 回答 2

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]';
}
于 2013-06-24T06:30:13.380 回答
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;
}
于 2013-06-24T06:48:00.607 回答