Как получить значение атрибута в объекте json - PullRequest
2 голосов
/ 20 апреля 2019

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

У меня есть следующий код:

let o = { dispatcher: { initials: 'abc' } }
o["dispatcher.initials"]
# undefined

Строка, которую я получаю, уже имеет вид «dispatcher.initials».Не могу ли я использовать такую ​​строку?

Я ожидал получить значение abc

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Вы можете split строка и reduce для цикла через массив.

let o = { dispatcher: { initials: 'abc' } };
let str = "dispatcher.initials";

let result = str.split(".").reduce((c,v)=> c != null ? c[v] : null ,o);

console.log(result);
0 голосов
/ 20 апреля 2019

Если вы хотите создать функцию для получения вашего свойства из пути, вы можете использовать split() и reduce()

let o = { dispatcher: { initials: 'abc' } }

const getVal = (obj,path) => path.split('.').reduce((ac,a) => (ac || {})[a],obj);

console.log(getVal(o,"dispatcher.initials"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...