Я хочу создать функцию под названием createAssociativeArray
, которая будет восстанавливать два параметра: string
и object
, например:
function createAssociativeArray(string, object) {
//...
}
Последний элемент string
должен получить данные object
. Пример использования/возврата:
createAssociativeArray('key1.key2.key3', {
data1: 1,
data2: 2,
data3: 3
});
// key1: {
// key2: {
// key3: {
// data1: 1,
// data2: 2,
// data3: 3
// }
// }
// }
Какой самый простой и надежный способ сделать это?
Использовать eval не является возможностью.
Что я пытался:
function createAssociativeArray(string, object) {
string = string.split('.');
return string.reduce(function(_object, _target, i) {
_object[_target] = (i + 1 === string.length ? object : {});
return _object;
}, {});
}
Это не вызвало ожидаемого результата, потому что объект сбрасывается до {}
.
[JSFiddle]