假设你已经定义了一个像这样的对象:
let myObject = {};
并且您要添加可能已存在或可能尚未存在的未知属性。到myObject
看起来更像的地方:
{
foo: {
prop: 'SOME PROP NAME',
val: 'SOME VAL'
},
bar: {
prop: 'SOME PROP NAME',
val: 'SOME VAL'
},
baz: {
prop: 'SOME PROP NAME',
val: 'SOME VAL'
}
}
请注意,foo.prop
和foo.val
可能会在不同时间设置。在同时设置道具和val的情况下,我可能只是使用_.assign(),也许它就像添加了额外图层一样简单。
假设有以下功能:
updateMyObject(e, attr, key) {
myObject[attr][key] = e.target.value;
}
这显然不起作用
我正在寻找 工作的功能。
答案 0 :(得分:0)
在添加新密钥和值之前,您可以检查myObject
是否包含attr
,否则创建它。
updateMyObject(e, attr, key) {
if(!(attr in myObject))
myObject[attr] = {};
myObject[attr][key] = e.target.value;
}