Javascript jQuery表达式作为对象键
我需要弄清楚如何为对象创建动态键字符串。这个表达式使JavaScript抱怨Javascript jQuery表达式作为对象键,javascript,jquery,object,Javascript,Jquery,Object,我需要弄清楚如何为对象创建动态键字符串。这个表达式使JavaScript抱怨 return {$(this).val(): true}; // returns an object e.g. {2: true} 我做错了什么?您必须创建对象,然后使用括号表示动态键 var obj = {}; var val = $(this).val(); obj[val] = true; return obj; 或者是完全不必要的一个班轮 return (function(o,e) {o[e.
return {$(this).val(): true}; // returns an object e.g. {2: true}
我做错了什么?您必须创建对象,然后使用括号表示动态键
var obj = {};
var val = $(this).val();
obj[val] = true;
return obj;
或者是完全不必要的一个班轮
return (function(o,e) {o[e.value]=true; return o;})({}, this);
JavaScript对象文本语法
{x:y}
指定x
将是(可能)无引号字符串,并且y
将是任何值。不能将此语法用于动态键
改用这个:
var foo = {};
foo[$(this).val()] = true;
return foo;
无聊的。太慢了。阿德内奥说了些什么。@AndreasMüller:同上:一行怎么做?=)@silkfire:
var obj={};var val=$(this.val();obj[val]=真;返回obj代码>:P(严肃的回答:否)@silkfire:不直接在初始值设定项中,不。如果您在需要单个表达式的地方绝对、肯定地必须这样做,那么您必须使用内联函数:var obj=(函数(val){var o={};o[val]=true;返回o;}($(this.val())代码>正常情况下,当然,你不想这样做。好了。拿到我的衬衫了。对不起,伙计们:)