Ich habe ein Objekt, das eine beliebige Anzahl von Ebenen tief sein kann und vorhandene Eigenschaften haben kann. Zum Beispiel:
var obj = {
db: {
mongodb: {
host: 'localhost'
}
}
};
Darauf möchte ich Eigenschaften wie folgt setzen (oder überschreiben):
set('db.mongodb.user', 'root');
// or:
set('foo.bar', 'baz');
Wobei die Eigenschaftszeichenfolge eine beliebige Tiefe haben kann und der Wert ein beliebiger Typ / Gegenstand sein kann.
Objekte und Arrays als Werte müssen nicht zusammengeführt werden, falls der Eigenschaftsschlüssel bereits vorhanden ist.
Das vorherige Beispiel würde folgendes Objekt erzeugen:
var obj = {
db: {
mongodb: {
host: 'localhost',
user: 'root'
}
},
foo: {
bar: baz
}
};
Wie kann ich eine solche Funktion realisieren?
set('foo', 'bar'); set('foo.baz', 'qux');
, wofoo
zuerst einString
dann ein wirdObject
? Was passiert mit'bar'
?