区间输入相关问题处理
适用场景 多个区间之间输入 左边最小值 右边最大值 区间之间是否存在相交 重复问题
一、 界面
二、 区间一至区间五值相交校验
let arr:object[] = [{min:1,max:2},{min:2,max:4},{min:4,max:7},{min:7,max:9}]
const sectionIntersect = (arr: any): boolean => {
let len: number = arr.length;
let bol: boolean = false
for (let i: number = 0; i < len - 1; i++) {
for (let j: number = i + 1; j < len; j++) {
if ((arr[i].min !== '' && arr[i].max !== '') && (arr[j].min !== '' && arr[j].max !== '')) {
if (arr[i].min === arr[j].min && arr[i].max === arr[j].max) {
let start: any[] = [Math.min(arr[i].min), Math.min(arr[j].min)];
let end: any[] = [Math.max(arr[i].max), Math.max(arr[j].max)];
if (Math.max(...start) < Math.min(...end)) {
bol = true
}
}
}
}
}
return bol
}
三、 区间一至区间五值重复校验
let arr:object[] = [{min:1,max:2},{min:2,max:4},{min:4,max:7},{min:7,max:9}]
const equalityCheck = (arr: any): boolean => {
let bol: boolean = false
let len: number = arr.length;
for (let i: number = 0; i < len - 1; i++) {
for (let j: number = i + 1; j < len; j++) {
if ((arr[i].min !== '' && arr[i].max !== '') && (arr[j].min !== '' && arr[j].max !== '')) {
if (arr[i].min === arr[j].min && arr[i].max === arr[j].max) {
bol = true
}
}
}
}
return bol
}
四、 区间一至区间五校验左边是不是最小值 右面是不是最大值
let arr:object[] = [{min:1,max:2},{min:2,max:4},{min:4,max:7},{min:7,max:9}]
const verificationMaxMin = (val: any, sign: number) => {
if (String(val.max) !== '' && String(val.min) !== '') {
if (Number(val.max) > Number(val.min)) {
return false
} else {
return true
notification.warning({
message: `左边为最小值右边为最大值`,
});
}
}
}