Дан отсортированный массив уникальных целых чисел. Сжать последовательные числа в диапазоны вида "start-end", одиночные — просто числом.
compressRanges([1,2,3,5,7,8,9,10]) // "1-3,5,7-10"
compressRanges([1,3,5]) // "1,3,5"
Проверяют умение аккуратно отслеживать состояние в цикле. Это не sliding window — окно здесь не фиксировано. Это жадный проход: тянем текущий диапазон пока числа идут подряд, при разрыве — фиксируем и начинаем новый.
Хитрость: пройти цикл до i <= nums.length (включительно). На последней итерации nums[i] — undefined, и условие продолжения диапазона не выполнится — последний диапазон закроется автоматически, без кода после цикла.