Вы должны ссылаться на каждое свойство в скобках. Таким образом, object[path]
не будет работать (как указывал @Crazy Train, ваша отладка должна была показать, что ваш var path = ...
выдает ошибку), но если у вас есть массив путей, таких как let path = ['india', 'chennai', 'sholing']
, вы можете использовать их чтобы получить доступ к глубокому свойству, как object[path[0]][path[1]][path[2]]
.
Вам, вероятно, гораздо лучше использовать вспомогательный инструмент, чтобы сделать это для вас, например, toPath и get функций Lodash:
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.get(object, 'a[0].b.c');
// => 3
_.get(object, ['a', '0', 'b', 'c']);
// => 3
_.get(object, 'a.b.c', 'default');
// => 'default'
См. Другие ответы: