这个问题可能已经被问到,但我在理解它时遇到了一些麻烦,我想用新对象更新我的javascript对象。
对象1:
var cjson = {};
var t = {
"infos": "apple",
"fields": {
"color":"red",
}
}
cjson['g320fld1'] = t;
对象2:
var data {
"fruits": {},
"vegetables": {}
}
输出:我想将对象1推送到 fruits 键下的对象2。所以输出的外观:
{
"fruits": {
"g320fld1": {
"infos": "apple",
"fields": {
"color":"red",
}
},
"vegetables": {}
}
我尝试了什么:
推()
data['fruits'].push(cjson);
错误:... push()不是函数。 (我知道push()仅适用于数组,所以它不会在这里工作。)
更新()
data['fruits'].update(cjson);
错误:... update()不是函数。 (这个给出了同样的错误,但因为它的另一个字典不应该按预期工作吗?)
我该如何解决这个问题?
更新:
抱歉,我并不精确,我不想删除水果中的旧数据。
答案 0 :(得分:3)
您只需将密钥t
直接分配给数据对象即可。只要您的密钥(例如g320fld1
)不同,就不会覆盖任何密钥。我认为这对你想做的事情更有意义。
var t = {
"infos": "apple",
"fields": {
"color":"red",
}
}
var data = {
"fruits": {},
"vegetables": {}
}
data.fruits['g320fld1'] = t;
console.log(data);

答案 1 :(得分:2)
修改强>
您可以使用Object.assign(srcObject,newProperties)
将新properties
,values
附加到现有object
。
var cjson = {};
var t = {
"infos": "apple",
"fields": {
"color":"red"
}
}
cjson['g320fld1'] = t;
var data ={
"fruits": {
otherProperty:"bar"
},
"vegetables": {}
}
Object.assign(data.fruits,cjson);
console.log(data)