10. Типобезопасный доступ к вложенным свойствам

Легко
genericsutilitylodash

Реализуйте функцию get с типобезопасным доступом к вложенным свойствам объекта по строковому пути.

Каждый способ должен быть реализован независимо в своём контейнере:

  1. Доступ к вложенным свойствам через точечную нотацию
  2. Возврат defaultValue, если путь не найден
  3. Обработка null в цепочке
  4. Поддержка числовых индексов массивов

Реализуйте функцию get(obj, path, defaultValue), которая: - Получает значение вложенного свойства по строковому пути (разделитель — точка) - Возвращает defaultValue, если свойство не найдено или равно undefined - Корректно обрабатывает массивы (числовые индексы в пути) Примеры: get({ a: { b: { c: 42 } } }, 'a.b.c') // 42 get({ a: { b: null } }, 'a.b.c', 'default') // 'default' get({ items: [{ id: 1 }] }, 'items.0.id') // 1

Примеры

Пример 12
Вход:
get({ a: { b: { c: 42 } } }, 'a.b.c')
Ожидаемый результат:

42

Подсказка:

Проход по пути a → b → c возвращает 42

Пример 13
Вход:
get({ a: null }, 'a.b.c', 'default')
Ожидаемый результат:

'default'

Подсказка:

a равен null, дальнейший путь невозможен — возвращается значение по умолчанию

Ограничения

  • Не использовать lodash или аналоги
  • Не использовать eval
0% принято
0 решений