range-overlaps
Version:
Checks whether two ranges/intervals overlap. Returns true or false.
25 lines (23 loc) • 741 B
JavaScript
/**
* @fileOverview Checks whether two intervals/ranges overlap.
* @author Anton Ivanov <anton@ivanov.hk>
*/
/**
* Checks whether two intervals/ranges overlap.
* @param {object} range1
* @param {number} range1.start
* @param {number} range1.end
* @param {object} range2
* @param {number} range2.start
* @param {number} range2.end
* @param {boolean} exclusive - By default the search is inclusive. Set this to
* true to perform exclusive search.
*/
function overlaps(range1, range2, exclusive = false) {
if (exclusive) {
return range1.start < range2.end && range2.start < range1.end;
} else {
return range1.start <= range2.end && range2.start <= range1.end;
}
}
module.exports = overlaps;