Как в javascript динамически получить вложенное свойство объекта

var arr = { foo : 1, bar: { baz : 2 }, bee : 3 }

function getter(variable) {
  return arr[variable];
}

Если я хочу 'foo' vs 'bee', я могу просто ввести arr [variable] - это просто, и функция это сделает.

Но что, если я хочу получить arr.bar.baz AKA arr [bar] [baz] ?

Что я могу передать функции получения, которая позволит мне это сделать (и, конечно же, я получаю невложенные свойства с помощью той же функции).

Я пробовал getter ('bar.baz') и getter ('[bar] [baz]') , но это не сработало.

Я полагаю, я могу разобрать точки или скобки (как здесь: В javascript проверить свойство, глубоко вложенное в граф объектов? ). Есть способ чище? (Кроме eval, конечно.)

Особенно потому, что мне нужно много раз в цикле для группы элементов массива получить глубокую установку должным образом.

27
задан Community 23 May 2017 в 12:17
поделиться