如何引用动态局部变量?这可以通过全局变量轻松实现:
myPet = "dog";
console.log(window["myPet"]);
我如何在本地范围内做同样的事情?
特别是我正在尝试做的事情:
myArray = [100,500,200,800];
a = 1; // Array index (operand 1)
b = 2; // Array index (operand 2)
看情况,我要评估a
- 为此,我设置了两个变量:compare1 和 compare2
- compare1 将引用 a 或 b 而 compare2 将引用另一个
- 评估compare1 <compare2 或反之
以下内容与全局变量完美配合。但是,我希望a 和b 是本地的。
compare1 = "b"; compare2 = "a";
for(a=0; a<myArray.length; a++){
b = a+1;
while(b>=0 && myArray[window[compare1]] < myArray[[compare2]]){
/* Do something; */
b--;
}
}
如果在上面我设置了 compare1=a
那么每次 a 改变时我都必须重新设置 compare1。相反,我实际上想 [查看/指向]a 的值。
最佳答案
使用一个对象而不是一组单独的变量。 (我想不出在现实世界的情况下,您会想要使用动态命名的变量,而它不属于一组逻辑相关的变量)。
var animals = { dog: "Rover", cat: "Flopsy", goldfish: "Killer" };
var which = 'dog';
alert(animals[which]);
关于javascript - 如何访问动态局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833978/