10. Типобезопасный доступ к вложенным свойствам
Легкоgenericsutilitylodash
Реализуйте функцию get с типобезопасным доступом к вложенным свойствам объекта по строковому пути.
Каждый способ должен быть реализован независимо в своём контейнере:
- Доступ к вложенным свойствам через точечную нотацию
- Возврат defaultValue, если путь не найден
- Обработка null в цепочке
- Поддержка числовых индексов массивов
Реализуйте функцию 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 решений