需要算法或解决方案来检查多个范围是否重叠



需要算法或解决方案来检查多个范围之间是否重叠!这个范围可以是动态的。例如:

//动态范围

var a = [ [1, 2], [3, 4], [2, 3], [5, 6] ];

所以,在上面给出的数组中,第一个数组值为"0";a";有1和2作为值,这里,2出现在第三个数组值[2,3]中,所以这应该给出false,依此类推…

首选语言:Javascript

任何帮助都将不胜感激!

您可以只使用双some方法,然后使用这些开始和结束间隔来检查重叠。

const arr = [[1, 2], [3, 4], [2, 3], [5, 6]];
const overlap = arr.some(([sA, eA], i) => {
return arr.slice(i + 1).some(([sB, eB]) => {
return sB >= sA && sB <= eA || eB >= sA && eB <= eA ||
sA >= sB && sA <= eB || eA >= sB && eA <= eB
})
})
console.log(overlap)

最新更新