//数据
validTime
{
15:{
beginTime: "2023-02-01 00:00:00"
endTime: "2023-02-28 00:00:00"
type: "100"
},
16:{
beginTime: "2023-02-06 00:00:00"
endTime: "2023-02-21 00:00:00"
type: "100"
},
17:{
beginTime: "2023-02-09 00:00:00"
endTime: "2023-02-28 00:00:00"
type: "200"
}
}
function Fn(overlapIndex) {
for (let k in validTime) {
var curIndex = judege(k)
if(overlapIndex.indexOf(curIndex) == -1) {
overlapIndex.push(curIndex)
}
}
return overlapIndex
}
function judege(idx) {
for (let k in validTime) {
if (idx !== k) {
if (validTime[k].beginTime <= validTime[idx].beginTime && validTime[k].endTime > validTime[idx].beginTime && validTime[k].type != validTime[idx].type) {
return idx
}
if (validTime[k].beginTime < validTime[idx].endTime && validTime[k].endTime >= validTime[idx].endTime && validTime[k].type != validTime[idx].type) {
return idx
}
}
}
}
//使用
let overlapIndex = []
//判断和当前政策时间段重复且类型(满N件,满N元)不同的ID
overlapIndex = Fn(overlapIndex)
//数据中17为当前的,所以在返回的数据中去掉17就是和17时间段有重合的数据