Показать сообщение отдельно
  #8 (permalink)  
Старый 15.10.2021, 13:27
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

<pre>
<script>
    const data = [{
                x1: 1,
                x2: 4,
                order: 0
            },
            {
                x1: 7,
                x2: 10,
                order: 0
            },
            {
                x1: 5,
                x2: 8,
                order: 0
            },
            {
                x1: 10,
                x2: 13,
                order: 0
            },
            {
                x1: 8,
                x2: 11,
                order: 0
            },
            {
                x1: 8,
                x2: 11,
                order: 0
            }
        ];
            
let orders = [];

data.forEach ( (x, i) => {
    let no = orders.findIndex (o => o.every (ot => data[ot].x1>=x.x2 || data[ot].x2 <= x.x1) );
   if (no>=0) 
      orders[no].push(i);
   else 
     no = orders.push([i]) - 1;
  x.order = no;
} )

document.write(JSON.stringify(data, "", 1))
</script>
</pre>
Ответить с цитированием