/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function (intervals) {
	intervals.sort((a, b) => a[0] - b[0])
	const results = [],
		len = intervals.length
	let currRange
	for (let i = 0; i < len; i++) {
		const currPair = intervals[i]
		if (!currRange) {
			currRange = currPair
		} else if (currPair[0] <= currRange[1]) {
			currRange[1] = Math.max(currPair[1], currRange[1])
		} else if (currPair[0] > currRange[1]) {
			results.push(currRange)
			currRange = currPair
		}
	}
	if (currRange) {
		results.push(currRange)
	}
	return results
}