javascript按变量名称将项目推送到对象中

Und*_*e2k 1 javascript

对不起新手问题,但我必须忽视一些事情.如何设置obj.{this.name} = propertyobj.sandwich = off.我的对象看起来像:

obj { sandwich: off, soup: off }
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/naaua4b5/

复选框列表:

<input type = "checkbox" name = "sandwich" />
<input type = "checkbox" name = "soup" />
Run Code Online (Sandbox Code Playgroud)

js代码:

var obj = {} ; 

$('input[type=checkbox]:not(:checked)').map(function()
{
     var item_name =  this.name;
     var value = 'off';
     obj.item_name = value;
}).get();

console.log (obj);
Run Code Online (Sandbox Code Playgroud)

KJ *_*ice 5

使用括号表示法:

var obj = {} ; 
      $('input[type=checkbox]:not(:checked)').map(function()
                {
                    var item_name =  this.name;
                    var value = 'off';
                    obj[item_name] = value;// <-brackets!
                }).get();
console.log (obj);
Run Code Online (Sandbox Code Playgroud)

点表示法obj.key使用文字"键"访问对象,虽然规范可能会受到限制,具体取决于您想要做什么.括号表示法obj['key']为您提供了更多的自由,您可以使用变量作为键(如您的情况)或甚至将疯狂的字符放在那里obj["I'm-Acrazy_Key"]