var arr = { foo : 1, bar: { baz : 2 }, bee : 3 } function getter(variable) { return arr[variable]; }
Если я хочу 'foo' vs 'bee', я могу просто ввести
arr [variable]
- это просто, и функция это сделает.Но что, если я хочу получить
arr.bar.baz
AKAarr [bar] [baz]
?Что я могу передать функции получения, которая позволит мне это сделать (и, конечно же, я получаю невложенные свойства с помощью той же функции).
Я пробовал
getter ('bar.baz')
иgetter ('[bar] [baz]')
, но это не сработало.Я полагаю, я могу разобрать точки или скобки (как здесь: В javascript проверить свойство, глубоко вложенное в граф объектов? ). Есть способ чище? (Кроме eval, конечно.)
Особенно потому, что мне нужно много раз в цикле для группы элементов массива получить глубокую установку должным образом.