这是我的对象字面量:
var obj = {key1: value1, key2: value2};
如何向对象添加字段key3
和值value3
?
这是我的对象字面量:
var obj = {key1: value1, key2: value2};
如何向对象添加字段key3
和值value3
?
如果您在一个对象中有多个匿名对象字面量,并且想要添加另一个包含键/值对的对象,请执行以下操作:
使用Firebug查看该对象:
console.log(Comicbook);
返回:
[对象{name="蜘蛛侠",value="11"},对象{name="Marsipulami", value="18"},对象{name="加菲猫",value="2"}]
代码:
if (typeof Comicbook[3]=='undefined') {
private_formArray[3] = new Object();
private_formArray[3]["name"] = "Peanuts";
private_formArray[3]["value"] = "12";
}
将Object {name="花生", value="12"}
添加到漫画书对象中
无论是obj['key3'] = value3
还是obj.key3 = value3
都会向obj
添加新的键值对。
然而,我知道这里没有提到jQuery,但如果你在使用它,可以通过$.extend(obj,{key3: 'value3'})
来添加对象。例如:
var obj = {key1: 'value1', key2: 'value2'};
$('#ini').append(JSON.stringify(obj));
$.extend(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">Initial: </p>
<p id="ext">Extended: </p>
jQuery.extend(target[,object1][,objectN])将两个或多个对象的内容合并到第一个对象中。
它还允许使用$.extend(true,object1,object2);
进行递归添加/修改:
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
$("#ini").append(JSON.stringify(object1));
$.extend( 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">Initial: </p>
<p id="ext">Extended: </p>
虽然这是一个关于过去的问题,但它仍然存在于现在。建议再提供一种解决方案:只需将键和值传递给函数,您将获得一个映射对象。
var map = {};
function addValueToMap(key, value) {
map[key] = map[key] || [];
map[key].push(value);
}
实现相同效果的最佳方法如下:
function getKey(key) {
return `${key}`;
}
var obj = {key1: "value1", key2: "value2", [getKey('key3')]: "value3"};
//console.log(obj);
var nwrow = {'newkey': 'value' };
for(var column in row){
nwrow[column] = row[column];
}
row = nwrow;