У меня есть следующий отсортированный массив чисел (они могут повторяться, например, 21)
let a = [1,2,3,4,7,8,12,15,21,21,22,23]
И хочу получить следующий (отсортированный) массив строк с диапазонами
let r =["1-4","7-8","12","15","21-23"]
для последовательных чисел a, a + 1, a + 2,..., a + n = bw необходимо создать строку "ab", например, для 6,7,8 мы хотим получить "6-8", для "одних" чисел мы хотим получить только это число, например, для 12 в приведенном выше примере мы получаем "12".
Вот моя попытка, но я застрял на ней (и у меня болит голова)
let a = [1,2,3,6,7,8,12,15,21,21,22,23];
let right=a[0];
let left=a[0];
let result=[];
for(let i=1; i<a.length; i++) {
for(let j=1; j<a.length; j++) {
if(a[i]<a[j])result.push('${a[i]}-${a[j]}');
}
}
console.log(JSON.stringify(result));