这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
当前回答
arr.key3 = value3;
因为你的arr不是一个数组。。。这是一个原型对象。真正的数组应该是:
var arr = [{key1: value1}, {key2: value2}];
但这仍然不正确。实际上应该是:
var arr = [{key: key1, value: value1}, {key: key2, value: value2}];
其他回答
我们可以通过多种方式向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(矩形);
大多数浏览器都支持,它检查对象键是否可用,如果可用,它将覆盖现有的键值,如果不可用,则使用值添加键
示例1
let my_object = {};
// now i want to add something in it
my_object.red = "this is red color";
// { red : "this is red color"}
示例2
let my_object = { inside_object : { car : "maruti" }}
// now i want to add something inside object of my object
my_object.inside_object.plane = "JetKing";
// { inside_object : { car : "maruti" , plane : "JetKing"} }
示例3
let my_object = { inside_object : { name : "abhishek" }}
// now i want to add something inside object with new keys birth , gender
my_object.inside_object.birth = "8 Aug";
my_object.inside_object.gender = "Male";
// { inside_object :
// { name : "abhishek",
// birth : "8 Aug",
// gender : "Male"
// }
// }
下一个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 arrOfObj = [{name: 'eve'},{name:'john'},{name:'jane'}];
var injectObj = {isActive:true, timestamp:new Date()};
// function to inject key values in all object of json array
function injectKeyValueInArray (array, keyValues){
return new Promise((resolve, reject) => {
if (!array.length)
return resolve(array);
array.forEach((object) => {
for (let key in keyValues) {
object[key] = keyValues[key]
}
});
resolve(array);
})
};
//call function to inject json key value in all array object
injectKeyValueInArray(arrOfObj,injectObj).then((newArrOfObj)=>{
console.log(newArrOfObj);
});
输出如下:-
[ { name: 'eve',
isActive: true,
timestamp: 2017-12-16T16:03:53.083Z },
{ name: 'john',
isActive: true,
timestamp: 2017-12-16T16:03:53.083Z },
{ name: 'jane',
isActive: true,
timestamp: 2017-12-16T16:03:53.083Z } ]
因为这是过去的问题,而现在的问题。会建议另外一个解决方案:只需将键和值传递给函数,您将获得一个map对象。
var map = {};
function addValueToMap(key, value) {
map[key] = map[key] || [];
map[key].push(value);
}