0
У меня есть строка «path»: 'profile.name.en'
;Создавать вложенный объект динамически с помощью forEach
Я хочу использовать это для динамического создания объекта. Я использую эту функцию и ее работу:
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;
}
Используйте это так:
var a = {};
var path = 'profile.name.en';
var profileName = 'OleFrank';
var o = set(a, path, profileName);
// result
{
profile: {
name: {
en: 'OleFrank'
}
}
}
Я пытался реорганизовать с использованием Foreach вместо для цикла, но это больше не работает. Почему это??
Покажите нам вашу попытку Foreach. – Turnip
Может быть вызвано лексическим охватом ... –
Почему forEach? сокращение будет лучше. –