如何在对象数组中动态添加键?

时间:2016-05-24 05:59:24

标签: javascript

var arr=[];
$.each($("#id").serializeArray(), function (i, field) {

    arr.push({
        field.name : field.value
    });

 });

我希望field.name应该是动态的。

2 个答案:

答案 0 :(得分:2)

您可以使用Bracket Notation

var arr=[];
$.each($("#id").serializeArray(), function (i, field) {
   var obj = {};
   obj[field.name] = field.value;
   arr.push(obj );
});

答案 1 :(得分:0)

  

显示Uncaught SyntaxError:意外的令牌。

这是因为,LHS在

中包含.
arr.push({
    field.name : field.value //field.name on LHS contains a dot, which is not correct syntax
});

根据spec(第6节对象)

  

对象结构表示为一对花括号标记   包含零个或多个名称/值对。名称是一个字符串。一个   单个冒号标记跟在每个名称后面,将名称与   值。单个逗号标记将值与以下名称分开。

如果你的属性名称是动态的,那么使用括号表示法,如上面显示的@Satpal。

var obj = {};
obj[field.name] = field.value; 
arr.push(obj);