Показать сообщение отдельно
  #3 (permalink)  
Старый 17.01.2018, 15:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

массив соединение диапазонов

"use strict"
function createIntervals(a) {
     let c;
     return a.sort((a, b) => a - b)
             .reduce((a, b) => (c && b === c[1] + 1 ? c[1] = b : a.push(c = [b, b]), a), []);
 }


let output =  createIntervals([1, 2, 3, 4, 5, 7, 8, 12]);
alert(JSON.stringify(output)); // output [ [ 1, 5 ], [ 7, 8 ], [ 12, 12 ] ]
Ответить с цитированием