J'ai un objet qui pourrait être de n'importe quel niveau de profondeur et pourrait avoir n'importe quelles propriétés existantes. Par exemple:
var obj = {
db: {
mongodb: {
host: 'localhost'
}
}
};
Sur cela, j'aimerais définir (ou écraser) des propriétés de cette manière:
set('db.mongodb.user', 'root');
// ou:
set('foo.bar', 'baz');
Où la chaîne de propriété peut avoir n'importe quelle profondeur, et la valeur peut être de n'importe quel type/chose.
Les objets et les tableaux en tant que valeurs n'ont pas besoin d'être fusionnés, si la clé de propriété existe déjà.
L'exemple précédent produirait l'objet suivant:
var obj = {
db: {
mongodb: {
host: 'localhost',
user: 'root'
}
},
foo: {
bar: baz
}
};
Comment puis-je réaliser une telle fonction?