这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
当前回答
2017年答案:Object.assign()
Object.assign(dest,src1,src2,…)合并对象。
它使用源对象的财产和值(无论多少)覆盖dest,然后返回dest。
assign()方法用于将所有可枚举自身财产的值从一个或多个源对象复制到目标对象。它将返回目标对象。
实时示例
var obj={key1:“value1”,key2:“value2”};对象.assign(obj,{key3:“value3”});document.body.innerHTML=JSON字符串(obj);
2018年答案:对象扩展运算符{…}
obj = {...obj, ...pair, scalar};
来自MDN:
它将自己的可枚举财产从提供的对象复制到新对象上。现在可以使用比Object.assign()更短的语法进行对象的浅层克隆(不包括原型)或合并。注意Object.assign()触发setter,而spread语法不触发setter。
实时示例
它适用于当前的Chrome和Firefox。他们说这在当前的Edge中不起作用。
var obj={key1:“value1”,key2:“value2”};var pair={key3:“value3”};var scalar=“value4”obj={…obj,…对,标量};document.body.innerHTML=JSON字符串(obj);
2019年答案
对象赋值运算符+=:
obj += {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对象
我们也可以这样做。
var myMap = new Map();
myMap.set(0, 'my value1');
myMap.set(1, 'my value2');
for (var [key, value] of myMap) {
console.log(key + ' = ' + value);
}
你可以用@IonuțG.Stan的答案创建一个类
function obj(){
obj=new Object();
this.add=function(key,value){
obj[""+key+""]=value;
}
this.obj=obj
}
使用最后一个类创建新对象:
my_obj=new obj();
my_obj.add('key1', 'value1');
my_obj.add('key2', 'value2');
my_obj.add('key3','value3');
打印对象
console.log(my_obj.obj) // Return {key1: "value1", key2: "value2", key3: "value3"}
打印密钥
console.log(my_obj.obj["key3"]) //Return value3
我是javascript新手,欢迎评论。对我有用。
根据ECMA-262中定义的属性访问器(http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf,P67),有两种方法可以将财产添加到现有对象。通过这两种方式,Javascript引擎将对它们一视同仁。
第一种方法是使用点符号:
obj.key3 = value3;
但是这样,您应该在点符号后使用IdentifierName。
第二种方法是使用括号表示法:
obj["key3"] = value3;
以及另一种形式:
var key3 = "key3";
obj[key3] = value3;
这样,您可以在括号符号中使用表达式(包括标识符名称)。
您可以使用其中一个(前提是key3是您想要使用的实际键)
arr[ 'key3' ] = value3;
or
arr.key3 = value3;
如果key3是变量,则应执行以下操作:
var key3 = 'a_key';
var value3 = 3;
arr[ key3 ] = value3;
之后,请求arr.a_key将返回值3,即文本3。