Войти Регистрация
Фронтенд

11. get по пути в ответе API Маркета

Лёгкая

Ответ API карточки Яндекс Маркета вложен на 5–6 уровней, и половины полей может не быть: у товара нет отзывов — нет и reviews. Напишите get(obj, path, defaultValue).

Путь — ключи через точку и индексы в квадратных скобках: offers[0].seller.rating, matrix[1][0]. Если на любом шаге значения нет (undefined или null посреди пути), вернуть defaultValue. Если значение найдено и равно 0, '' или false — вернуть его.

В работе: Разбор ответов API, шаблоны, настройки с вложенными полями.

Пример 1: вложенные ключи

Аргументы теста
{"offer": {"seller": {"rating": 4.8}}}, "offer.seller.rating", null
Ожидается
4.8

Пример 2: индекс массива

Аргументы теста
{"items": [{"price": 1290}, {"price": 499}]}, "items[1].price", null
Ожидается
499
Как проверяем Объявите get — тест вызывает её сам. Таймеры и Date в тестах ненастоящие: время идёт по команде теста, поэтому setTimeout на 5 секунд проверяется мгновенно. Тестов 7: 2 открыты выше, остальные приходят после старта подхода. Лимит — 2 с на тест.
function get(obj, path, defaultValue) // → значение
строкиобъекты

Источник: на задачах Яндекс Маркета: карточка товара. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.