20/04/15 12:23:24 229B67vy.net
>>131 js
let input = [[2, 3], [3, 4], [7, 10]];
let result = input.reduce((merged, range) => {
let under = range.map(n =>
merged.filter(mrange => mrange[0] <= n && n <= mrange[1])[0]||[]);
let extended = [under[0][0] || range[0], under[1][1] || range[1]];
let bored = merged.filter(mrange => !(extended[0] <= mrange[0] && mrange[1] <= extended[1]));
return [...bored, extended];
}, []);
console.log(result);