Solución
solution.tsTypeScript
export function compressToRanges(numbers: number[]): string {
const ranges = [];
let rangesIndex = 0;
let preNum = undefined;
for (const num of numbers) {
if (preNum === undefined) {
ranges[rangesIndex] = [num];
} else {
if (num - preNum === 1) {
ranges[rangesIndex] = [...(ranges[rangesIndex] || []), num];
} else {
rangesIndex++;
ranges[rangesIndex] = [num];
}
}
preNum = num;
}
return ranges.map(arr => Array.from(new Set([arr.at(0), arr.at(-1)])).join('-')).join();
}0respuestas