Ich habe eine 'Pfad' Zeichenfolge: 'profile.name.en'
;Erstellen verschachtelten Objekt dynamisch mit ForEach
Ich möchte dies verwenden, um ein Objekt dynamisch zu erstellen. Ich verwende diese Funktion und ihre Arbeits:
function set(obj, path, value) {
var schema = obj; // a moving reference to internal objects within obj
var arr = path.split('.');
var len = arr.length;
for(var i = 0; i < len-1; i++) {
var elem = arr[i];
if(!schema[elem]) schema[elem] = {};
schema = schema[elem];
}
schema[arr[len-1]] = value;
return schema;
}
es wie folgt verwendet:
var a = {};
var path = 'profile.name.en';
var profileName = 'OleFrank';
var o = set(a, path, profileName);
// result
{
profile: {
name: {
en: 'OleFrank'
}
}
}
ich mit forEach Refactoring versucht, anstelle von for-Schleife, aber dann funktioniert es nicht mehr. Warum ist das??
Zeigen Sie uns Ihre forEach Versuch. – Turnip
Kann durch lexikalisches Scoping verursacht werden ... –
warum forEach? reduzieren würde besser passen. –