如何在散列中将变量值指定为变量名?

mik*_*eum 18 javascript variables

我需要定义一个哈希,用于使用jQuery发布一些ajax数据.哈希看起来像:

var setname = 'set_1';
elements = { set_1: {'beer','water','wine'} };
Run Code Online (Sandbox Code Playgroud)

我需要解决的挑战是'set-1'(数组元素的关键)应该根据值的动态命名var setname.

我想避免使用eval()当然..在PHP中它可以使用这样的双美元符号来完成:$$setname,但是在JavaScript中这样做的方法是什么?

Dan*_*uis 31

你可以做你想要的事情:

var setname = 'set_1', elements = {};
elements[setname] = ['beer','water','wine'];
alert(elements['set_1']); // beer,water,wine
Run Code Online (Sandbox Code Playgroud)

请参阅http://jsfiddle.net/x5KRD/上的此操作.

可以使用点表示法(obj.method()obj.property)或括号表示法(obj['method']()obj['property'])来访问JS中的所有对象.使用括号表示法可以动态指定方法/属性/键名称.

例如,虽然笨拙,window['alert']('hi')相当于window.alert('hi').

请注意,无论如何,您的代码将不会按原样运行,因为您使用对象文字符号({'beer','water','wine'})来包含数组(它应该在方括号中['beer','water','wine']).对象文字需要具有键值对.


kan*_*aka 6

var setname = 'set_1', 
    elements = {};

elements[setname] = ['beer','water','wine'];
Run Code Online (Sandbox Code Playgroud)