我需要弄清楚如何为对象创建动态密钥字符串。这个表达式让JavaScript抱怨。
return {$(this).val(): true}; // returns an object e.g. {2: true}
我做错了什么?
答案 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;