@NikClik

Как получить значение из объекта по ключам, которые хранятся в строке?

Допустим у меня есть объект:
let dict: object = { 
       key1:  {
            nestedKey: "1"
       } 
}

если обратиться к объекту dict.key1.nestedKey он вернет 1.
Но мне необходимо сохранять связку ключей (key1.nestedKey) в строке и потом эту строку использовать как ключ. Что-то типо:
let str = "key1.nestedKey"
dict[str]
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@i1yas
Примерно так:
const dict = { 
       key1:  {
            nestedKey: "1"
       } 
}

const str = "key1.nestedKey"

const value = str.split(".").reduce((acc, key) => {
  return acc[key] ? acc[key] : null;
}, dict);

console.log(value)


Если значение по пути не будет найдено, вернет null.

А вообще для таких целей лучше пользоваться библетеками, например
rambda/path
lodash/get
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы