javascript - 通过另一个变量名访问对象的数据

标签 javascript jquery arrays variables

太晚了,我现在脑子一片空白,但假设我有变量 filename,它正在存储另一个变量 marker 的名称。变量 marker 是一个数组,包含对象和属性 position: new google.maps.LatLng(42.2550,-114.3221)

我一直在愚蠢地尝试通过 filename.position 访问它,这当然会返回 undefined,因为它正在搜索文字 filename 来寻找一个“position”属性不存在。

但是我怎样才能使用 filename 拉取 marker.position 呢?是否有一些漂亮的 jQuery 技巧,呃,将变量“解析”为其内容?我脑残了我知道我以前做过。

最佳答案

如果在您的脚本中可行,您不仅可以将数据存储在变量中,还可以存储在某些对象的属性中(通常使用全局属性更方便)。 例如

var myObj = {};
myObj.marker = new google.maps.LatLng(42.2550,-114.3221); // or anything else

然后您将能够使用这样的变量来获取此属性:

myObj[filename].position

在这种情况下,我还建议使用 typeof 结构检查 myObj[filename] 是否存在,只是为了确保这样的属性存在于 myObj.

if (typeof myObj[filename] !== "undefined") {
  // do something
}

正如 apsillers 所指出的,您也可以为此使用全局 window 对象。但是,如果您的 marker 变量是在其他函数中定义的(即不是全局的),您将无法使用 window.markerwindow[filename] 因为它将超出范围。

第二种方法是使用 eval() 函数,我强烈建议避免

关于javascript - 通过另一个变量名访问对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543266/

相关文章:

javascript - 使用 Jquery 的 AJAX 无法跨 JSP 页面工作

javascript - Angularjs按价格搜索产品(从价格到价格)

jquery - 使用 jQuery 将 Canvas 图形引用为 DOM 元素

jquery - li,ul 类对象不会调整

jquery - 浏览器文本框自动完成事件,什么时候发生?

javascript - 如何使用 node-http-proxy 抑制来自目标的 301 重定向?

javascript - Dojo 可移动以提供动态内容

Java - 计算最常见的元素

arrays - 确定数组是增加还是减少的最佳方法

c++ - 如何在 C++ 结构中的结构数组中填充字符串