Показать сообщение отдельно
  #6 (permalink)  
Старый 20.07.2021, 05:55
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Сообщение от Vlasenko Fedor
Вариант
Если не ошибаюсь, можно идти от старта, тогда не придется сортировать второй раз
<script>
const res = [];
const workTime = [9, 18];
const input = [
    [9, 10],
    [15, 17],
    [14, 17.4],
];
let [start, end] = workTime;
input.sort(([a], [b]) => a - b).forEach(([a, b]) => {
    if (start < a) res.push([start, a]);
    start = Math.max(start, b);
});
if (start < end) res.push([start, end]);
document.write(JSON.stringify(res));
</script>
Ответить с цитированием