<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>