Код Middle Зависимости и supply chain обновлено
Попадает ли версия в уязвимый диапазон
Условие
Напишите isVulnerable(version, ranges). Версия в формате MAJOR.MINOR.PATCH (только числа). ranges массив объектов { introduced, fixed } в стиле базы OSV: версия уязвима, если introduced <= version < fixed. Поле fixed может отсутствовать: тогда уязвимы все версии начиная с introduced. Версии сравниваются как числа по компонентам (1.10.0 больше 1.9.9). Верните true, если версия попадает хотя бы в один диапазон.
Примеры
isVulnerable("2.14.1", [{"introduced":"2.0.0","fixed":"2.15.0"}]) // true
isVulnerable("2.15.0", [{"introduced":"2.0.0","fixed":"2.15.0"}]) // false
isVulnerable("1.9.9", [{"introduced":"2.0.0","fixed":"2.15.0"}]) // false
Как подойти
Подсказки: 2
- Разбейте версии на числа и сравнивайте покомпонентно.
- Отсутствующий
fixedозначает открытый сверху диапазон.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.