【问题标题】:how can I dynamically add key in array of object? [duplicate]如何在对象数组中动态添加键? [复制]
【发布时间】:2016-09-21 04:31:50
【问题描述】:
var arr=[];
$.each($("#id").serializeArray(), function (i, field) {

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

 });

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

【问题讨论】:

  • “我希望 field.name 应该是动态的。” ?能详细点吗?
  • 这显示 Uncaught SyntaxError: Unexpected token 。 (点)

标签: javascript


【解决方案1】:

显示 Uncaught SyntaxError: Unexpected token 。

这是因为,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);

【讨论】:

    【解决方案2】:

    您可以使用Bracket Notation

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      相关资源
      最近更新 更多