Tengo un objeto que podría tener cualquier cantidad de niveles de profundidad y podría tener propiedades existentes. Por ejemplo:
var obj = {
db: {
mongodb: {
host: 'localhost'
}
}
};
En eso, me gustaría establecer (o sobrescribir) propiedades así:
set('db.mongodb.user', 'root');
// or:
set('foo.bar', 'baz');
Donde la cadena de propiedad puede tener cualquier profundidad y el valor puede ser de cualquier tipo / cosa.
Los objetos y matrices como valores no necesitan fusionarse, si la clave de propiedad ya existe.
El ejemplo anterior produciría el siguiente objeto:
var obj = {
db: {
mongodb: {
host: 'localhost',
user: 'root'
}
},
foo: {
bar: baz
}
};
¿Cómo puedo realizar tal función?
set('foo', 'bar'); set('foo.baz', 'qux');
, dóndefoo
primero se mantiene un yString
luego se convierte en unObject
? ¿Qué pasa con'bar'
?