我有一个现有的javascript对象。
let existingObject = {
1: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
},
2: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
},
3: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
}
}
我想向该现有对象添加属性。我的新键值为:
const key = 4;
const value = {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
}
在添加了键和值之后,我的新对象应该是
const newObject = {
1: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
},
2: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
},
3: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
},
4: {
'prop1': 'prop1 value',
'prop2': 'prop2 value'
}
}
此处的键是动态值。每当我尝试附加此键值时,键就会变成变量名。
我该如何解决这个问题?
注意:为了创建现有对象,我正在使用lodash。
答案 0 :(得分:0)
您可以使用Object.assign()并使用Computed Property names(例如{[key]: value}
)来完成此操作:
let existingObject = {
1: {'prop1': 'prop1 value', 'prop2': 'prop2 value'},
2: {'prop1': 'prop1 value', 'prop2': 'prop2 value'},
3: {'prop1': 'prop1 value', 'prop2': 'prop2 value'}
}
const key = 4;
const value = {'prop1': 'prop1 value', 'prop2': 'prop2 value'}
Object.assign(existingObject, {[key]: value});
console.log(existingObject);
但是,正如其他人对您发表的评论一样,这很容易:
existingObject[key] = value;