@SergeiB

Как получить свойство вложенного объекта?

Есть функция:
function getPersonalData(key) {
  var person = {
    age: 21,
    name: {
      first:  'Bob',
      last: 'Smith'
    }
  };

  return person[key];
}

getPersonalData('age'); // 21

Как изменить её, чтобы получить доступ к свойствам вложенного объекта? Типа так:
getPersonalData('[name][first]');
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
@kova1ev
чем заниматься гемором с разбором строки, проще так:
getPersonalData('name').first

getPersonalData('name')['first']
Ответ написан
@StockholmSyndrome
но если так хочется…
function getPersonalData(path) {
  var person = {
    age: 21,
    name: {
      first:  'Bob',
      last: 'Smith'
    }
  };

  return path.slice(1, -1).split('][').reduce((obj, prop) => obj[prop], person);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы