使用Js实现一个getIntersection函数,可以用于获取多个区间的交集
<script>
function getIntersection(...args){ //剩余运算符 [[5,2],[6,7]]
let fArr = [];
let lArr = [];
//遍历数组[5,2],[6,7]
for(let item of args){
item.sort((a,b)=>{return a-b}) //将第二个下标小于第一个的进行调整
fArr.push(item[0]) //将第一个下标放到数组fArr中
lArr.push(item[1]) //将第二个下标放到数组lArr中
}
let fMax = Math.max(...fArr); //选出第一个下标比较打的值
let lMin = Math.min(...lArr); //选出第二个下标比较小的值
if(fMax>lMin){ //如果第一个下标大于第二个,无交集
return null;
}else if(fMax == lMin){ //如果第一个下标等于第二个,交集为当前值
return fMax;
}else{
return [fMax,lMin]; //有交集情况
}
}
console.log(getIntersection([5,2],[6,7]));
</script>
没有参考正确答案,如有错误还望大佬指出!!!