这是我的对象文字:

var obj = {key1: value1, key2: value2};

如何将值为3的字段key3添加到对象中?


当前回答

示例显示的是对象,而不是数组。在这种情况下,将字段添加到Object的首选方法是只分配给它,如下所示:

arr.key3 = value3;

其他回答

下一个Javascript规范(候选阶段3)中简短而优雅的方式是:

obj={…obj,…{key3:value3}}

在Object spread vs Object.assign和Axel Rauschmayers博士的网站上可以找到更深入的讨论。

自8.6.0版以来,它已经在node.js中运行。

最新版本的Vivaldi、Chrome、Opera和Firefox也知道这个功能,但Mirosoft直到今天才知道,无论是在Internet Explorer还是Edge中。

为了给对象添加键值对,以便for In与该元素一起使用,请首先执行以下操作:

    var nwrow = {'newkey': 'value' };
    for(var column in row){
        nwrow[column] = row[column];
    }
    row = nwrow;

示例显示的是对象,而不是数组。在这种情况下,将字段添加到Object的首选方法是只分配给它,如下所示:

arr.key3 = value3;

如果在一个Object中有多个匿名Object文本,并希望添加另一个包含键/值对的Object,请执行以下操作:

Firebug对象:

console.log(Comicbook);

返回:

[对象{name=“Spiderman”,值=“11”},对象{name=“Marsiplami”,value=“18”},对象{name=“Garfield”,value=“2”}]

代码:

if (typeof Comicbook[3]=='undefined') {
    private_formArray[3] = new Object();
    private_formArray[3]["name"] = "Peanuts";
    private_formArray[3]["value"] = "12";
}

将对象{name=“Peanuts”,value=“12”}添加到Comicbook对象

arr.key3 = value3;

因为你的arr不是一个数组。。。这是一个原型对象。真正的数组应该是:

var arr = [{key1: value1}, {key2: value2}];

但这仍然不正确。实际上应该是:

var arr = [{key: key1, value: value1}, {key: key2, value: value2}];