Javascript 更新动态对象
我有一个目标:Javascript 更新动态对象,javascript,Javascript,我有一个目标: { ..., values: {}, ... } 默认情况下,值为空 现在我想将动态对象添加到此对象: [myDynamicProperty]: { title: '...', introduction: '...' } 没关系,我知道怎么做。但是,在其他操作中,我必须将key:value或key:object添加到[myDynamicProperty]中,当我尝试某个操作时,我会丢失[myDynamicProperty] 我试图
{
...,
values: {},
...
}
默认情况下,值
为空
现在我想将动态对象添加到此对象:
[myDynamicProperty]: {
title: '...',
introduction: '...'
}
没关系,我知道怎么做。但是,在其他操作中,我必须将key:value
或key:object
添加到[myDynamicProperty]
中,当我尝试某个操作时,我会丢失[myDynamicProperty]
我试图克隆我的初始对象,但它不起作用
当然,stackoverflow上的某个人有解决方案。您可以采取两步方法,将默认对象分配给
myDynamicProperty
,然后将值分配给它
这将保留object.values[myDynamicProperty]
的所有属性,并仅更改给定的键
var object = {
values: {},
}
object.values[myDynamicProperty] = object.values[myDynamicProperty] || {};
Object.assign(object.values[myDynamicProperty], { title: '...', introduction: '...' });
如果您试图传达您是从以下对象开始的:
var user = {
meta: {
first_name: "John",
last_name: "Smith"
}
}
并希望将middle\u name
添加到meta
对象属性中,然后您应该执行以下操作
Object.assign(用户['meta'],{middle_name:“Harry”})代码>
请注意,第一个对象将被后面对象的值覆盖。以后的对象特性将优先于以前的对象特性。有关更多详细信息,请参阅警告:这是一项ES6功能,如有必要,请使用polyfill进行向后兼容性。如果您分享有关具体案例的更多详细信息,也许我们可以提供帮助:-)您能否显示使您丢失值的代码?不清楚您遇到了什么问题;向对象添加属性不会删除现有对象。确实没有设置整个属性吗?obj.values[myDynamicProperty].key=value代码>我感觉你做了一些类似values.myDynamicProperty={foo:'bar}的事情,当它应该是values.myDynamicProperty.foo='bar'时,实际上我在代码中使用了let newValues=Object.assign(Object.values[myDynamicProperty],…)但是它不是这样工作的,我不明白为什么。感谢您的快速帮助。请将动态属性添加到问题中,不仅仅是一个结构,而是一些用于测试的真实数据。