这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
当前回答
var employees = [];
employees.push({id:100,name:'Yashwant',age:30});
employees.push({id:200,name:'Mahesh',age:35});
其他回答
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"};
哎呀。。。我被迷住了。从未来走私信息是非法的。完全模糊!
我们可以通过多种方式向JavaScript对象添加键/值对。。。
案例1:展开对象使用此选项,我们可以同时向对象添加多个key:value。
常量矩形={width:4,height:6};常量立方体={…矩形,长度:7};const cube2={…矩形,长度:7,笔划:2};console.log(“立方体2:”,立方体2);console.log(“Cube:”,立方体);console.log(“矩形:”,矩形);
案例2:使用点符号
var矩形={width:4,height:6};直角长度=7;console.log(矩形);
案例3:使用[平方]符号
var矩形={width:4,height:6};矩形[“长度”]=7;console.log(矩形);
obj['key3']=value3或obj.key3=value3将向obj添加新对。
然而,我知道没有提到jQuery,但是如果您正在使用它,可以通过$.exextend(obj,{key3:‘value3‘})添加对象。例如。:
var obj={key1:“value1”,key2:“value2”};$(“#ini”).append(JSON.stringify(obj));$.exextend(obj,{key3:“value3”});$('#ext').append(JSON.stringify(obj));<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><p id=“ini”>首字母:</p><p id=“ext”>扩展:</p>
extend(target[,object1][,objectN])将两个或多个对象的内容合并到第一个对象中。
它还允许使用$.exextend(true,object1,object2);进行递归添加/修改:
变量对象1={苹果:0,香蕉:{重量:52,价格:100},樱桃:97};变量对象2={香蕉:{价格:200},榴莲:100};$(“#ini”).append(JSON.stringify(object1));$.exextend(true,object1,object2);$(“#ext”).append(JSON.stringify(object1));<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><p id=“ini”>首字母:</p><p id=“ext”>扩展:</p>
下一个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中。
有两种方法可以向对象添加新的财产:
var obj = {
key1: value1,
key2: value2
};
使用点符号:
obj.key3 = "value3";
使用方括号表示法:
obj["key3"] = "value3";
当您知道属性的名称时,将使用第一种形式。当动态确定属性的名称时,使用第二种形式。如本例所示:
var getProperty = function (propertyName) {
return obj[propertyName];
};
getProperty("key1");
getProperty("key2");
getProperty("key3");
一个真正的JavaScript数组可以使用以下任一方法构建:
数组文字表示法:
var arr = [];
Array构造函数表示法:
var arr = new Array();