我需要定义一个散列来使用 jQuery 发布一些 ajax 数据。散列看起来像:
var setname = 'set_1';
elements = { set_1: {'beer','water','wine'} };
我需要解决的挑战是“set-1”(数组元素的键)应该根据 var setname
的值动态命名。
我想避免使用 eval()
当然..在 PHP 中可以使用双美元符号,如下所示: $$setname
,但是在 JavaScript 中执行此操作的方法是什么?
原文由 mikkelbreum 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以做你想做的事:
在 http://jsfiddle.net/x5KRD/ 上查看实际操作。
All objects in JS can be accessed using dot notation (
obj.method()
orobj.property
), or bracket notation ( ---obj['method']()
orobj['property']
).使用括号表示法可以让您动态指定方法/属性/键名称。例如,虽然笨拙,但
window['alert']('hi')
等同于window.alert('hi')
。请注意,无论如何,您的代码不会按原样工作,因为您正在使用对象文字表示法(
{'beer','water','wine'}
)来包含一个数组(它应该在方括号中['beer','water','wine']
).对象文字需要有键值对。