> Какие проверки можно применить к массиву в JSON (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Цитадель
Стек: JavaScript
> Пример ответа
При работе с JSON-массивами на фронтенде можно применять несколько типов проверок:
- Проверка структуры - убедиться, что данные действительно являются массивом:
JAVASCRIPTif (!Array.isArray(data)) {throw new Error('Ожидался массив');}
- Проверка длины - валидация размера массива:
JAVASCRIPTif (data.length === 0) {console.warn('Массив пуст');}if (data.length > maxItems) {// обработка превышения лимита}
- Проверка типов элементов - каждый элемент должен соответствовать ожидаемому типу:
JAVASCRIPTconst isValid = data.every(item => typeof item === 'object' && item !== null);
- Проверка обязательных полей - для массива объектов:
JAVASCRIPTconst requiredFields = ['id', 'name'];const allValid = data.every(item =>requiredFields.every(field => field in item));
- Проверка уникальности - отсутствие дубликатов по ключевому полю:
JAVASCRIPTconst uniqueIds = new Set(data.map(item => item.id));if (uniqueIds.size !== data.length) {// найдены дубликаты}
- Проверка диапазона значений - для числовых полей:
JAVASCRIPTconst inRange = data.every(item => item.price >= 0 && item.price <= 10000);
- Проверка сортировки - если массив должен быть упорядочен:
JAVASCRIPTconst isSorted = data.every((item, i) => i === 0 || item.date >= data[i-1].date);
Эти проверки обычно комбинируются в функции-валидаторе, которая возвращает boolean или выбрасывает исключение с описанием ошибки.
> Похожие задачи по frontend
В чем разница последовательных и параллельных запросов и как реализовать параллельные запросы в JavaScript?
Уровень: seniorКатегория: Технические вопросы
Компания: циан, Яндекс
Стек: JavaScript
Как обрабатываются call stack и очереди в JavaScript
Уровень: seniorКатегория: Технические вопросы
Компания: циан, Spotware
Стек: JavaScript
Как реализовать функцию каррирования с использованием замыканий в JavaScript
Уровень: seniorКатегория: Технические вопросы
Компания: циан, Яндекс
Стек: JavaScript
Как использовать асинхронные функции при переборе элементов, например в reduce
Уровень: seniorЯзык: JavaScriptКатегория: Технические вопросы
Компания: TrendTech
Стек: Node.js, JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью