jQuery表达式作为对象键

时间:2014-04-14 12:16:17

标签: javascript jquery object

我需要弄清楚如何为对象创建动态密钥字符串。这个表达式让JavaScript抱怨。

return {$(this).val(): true};      // returns an object e.g. {2: true}

我做错了什么?

2 个答案:

答案 0 :(得分:5)

您必须创建对象,然后对动态键使用括号表示法

var obj = {};
var val = $(this).val();

obj[val] = true;

return obj;

或完全不必要的单行

return (function(o,e) {o[e.value]=true; return o;})({}, this);

答案 1 :(得分:1)

JavaScript对象文字语法{x: y}指定x将是(可能)无引号字符串,y任何值。您无法将此语法用于动态密钥。

请改用:

var foo = {};
foo[$(this).val()] = true;
return foo;