动态设置嵌套对象的属性
2022-08-30 04:38:28
我有一个对象,它可以是任意数量的级别深度,并且可以具有任何现有属性。例如:
var obj = {
db: {
mongodb: {
host: 'localhost'
}
}
};
关于这一点,我想设置(或覆盖)属性,如下所示:
set('db.mongodb.user', 'root');
// or:
set('foo.bar', 'baz');
其中,属性字符串可以具有任何深度,并且值可以是任何类型/事物。
如果属性键已存在,则不需要合并作为值的对象和数组。
前面的示例将生成以下对象:
var obj = {
db: {
mongodb: {
host: 'localhost',
user: 'root'
}
},
foo: {
bar: baz
}
};
如何实现这样的功能?