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, которая позволит мне это сделать (и, конечно, также позвольте мне получить не-вложенные свойства, используя одну и ту же функцию).
Я пробовал getter('bar.baz')
и getter('[bar][baz]')
, но они не работали.
Я полагаю, что могу анализировать точки или скобки (например, здесь: В javascript, тест для свойства, глубоко вложенного в графа объектов?). Есть ли более чистый способ? (Кроме того, eval, конечно.)
Особенно потому, что мне нужно многократно установить множество много раз в цикле для группировки элементов массива.