1.判断某个值是否在区间数组里
let open = [
[1, 3],
[4, 6],
[7, 10],
[10, 11],
]
function judgeSection() {
let current = 0
let isOpen = false;
for (let i = 0; i < open.length; i++) {
if (judgeCurrentNumberInSection(current, open[i])) {
isOpen = true
break;
}
}
console.log(`当前值在 ${isOpen ? ' 开 ': ' 关 '}区间`);
}
function judgeCurrentNumberInSection(current, section) {
if (current >= section[0] && current <= section[1]) return true
else return false
}
2.判断区间之间是否相交
let open = [
[1, 3],
[4, 6],
[7, 10],
[10, 11],
]
function judgeIntersect() {
let isIntersect = false
a: for (let i = 0; i < open.length - 1; i++) {
b: for (let j = i + 1; j < open.length; j++) {
if (judgeTwoSectionsIsIntersect(open[i], open[j])) {
isIntersect = true
break a;
break b;
}
}
}
console.log("区间是否相交:", isIntersect);
}
function judgeTwoSectionsIsIntersect(section1, section2) {
let maxInMins = Math.max(...[Math.min(...section1), Math.min(...section2)])
let minInMaxs = Math.min(...[Math.max(...section1), Math.max(...section2)])
return maxInMins <= minInMaxs
}