1.从当前日期筛选出包含当前时间的所有数组
//筛选出当前选中日期的数组
arrGroup (agendaDate, arr) {
let soleArr = []
if (arr.length) {
arr.forEach(item => {
if (agendaDate === item.agendaDate) {
soleArr.push(item)
}
});
return soleArr
} else {
return []
}
},
//
let arr1=[{"agendaDate": "2023-04-26","id": "5586","agendaTime": "08:00-10:02"},
{"agendaDate": "2023-04-26","id": "5586","agendaTime": "12:00-13:02"},
{"agendaDate": "2023-04-25","id": "5586","agendaTime": "12:00-13:02"}]
let newArr=this.arrGroup( "2023-04-26",arr1)
console.log("--newArr", newArr)
2.从当前的日期去查看是否存在重复的时间段
//筛选出当前选中日期的数组 arrGroup (agendaDate, arr) { let soleArr = [] if (arr.length) { arr.forEach(item => { if (agendaDate === item.agendaDate) { soleArr.push(item) } }); return soleArr } else { return [] } }, let arr1=[{"agendaDate": "2023-04-26","id": "5586","agendaTime": "08:00-10:02"}, {"agendaDate": "2023-04-26","id": "5586","agendaTime": "12:00-13:02"}, {"agendaDate": "2023-04-25","id": "5586","agendaTime": "12:00-13:02"}] let newArr=this.arrGroup( "2023-04-26",arr1) console.log("--newArr", newArr) 筛选后的数组判断时间段是否存在重复 let dateAr=[] arrNew.forEach((item) => { let time = item.agendaTime.split("-"); dateAr.push({ s: time[0], e: time[1] }) }) let flag = this.timePeriod(dateAr) this.isAllowed = flag if (!flag) { this.$message.error("该时间已存在议程, 请重新选择时间段!"); return; } //时间段数组是否重复 timePeriod (dateAr) { for (let k in dateAr) { if (!this.judege(k, dateAr)) { return false } } return true }, //时间段是否重复标志位 judege (idx, dateAr) { for (let k in dateAr) { if (idx !== k) { if (dateAr[k].s < dateAr[idx].s && dateAr[k].e > dateAr[idx].s) { return false } if (dateAr[k].s < dateAr[idx].e && dateAr[k].e > dateAr[idx].e) { return false } } } return true },