javascript - 如何访问动态局部变量

标签 javascript variables dynamic scope local-variables

如何引用动态局部变量?这可以通过全局变量轻松实现:

myPet = "dog";  
console.log(window["myPet"]);

我如何在本地范围内做同样的事情?


特别是我正在尝试做的事情:

myArray = [100,500,200,800];  
a = 1; // Array index (operand 1)  
b = 2; // Array index (operand 2)  

看情况,我要评估a

  • 为此,我设置了两个变量:compare1compare2
  • compare1 将引用 ab 而 compare2 将引用另一个
  • 评估compare1 <compare2 或反之

以下内容与全局变量完美配合。但是,我希望ab 是本地的。

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/

相关文章:

javascript - 嵌套 dom-repeat 中数组映射的更改通知

javascript - 两个方向从 n 开始的范围

java - ScrollView - 从膨胀的 xml 布局添加动态行

javascript - 在 localStorage 上捕获 QUOTA_EXCEEDED_ERR

javascript - 视频有时可以很好地加载,有时却需要很长时间才能加载,或者根本不加载?

vba - 集合中的变量引用

c# - 如何在 C# 中创建一个变量来保存日期?

javascript - 问 : how can I add a javascript variable to yql query

c# - 具有多个/未知条件的动态 linq 查询

c# - .NET 中的动态控件问题