定义的:checkList: ['9:00-10:00','10:30-11:30','13:00-14:00','14:30-15:30','16:00-17:00'] 选中的 checkArr: ['9:00-10:00','13:00-14:00'] 使用javascript 使用选中的和定义的进行比较,判断选中的数据是不是连续选中的
时间: 2023-12-30 22:36:07 浏览: 24
要判断选中的数据是否连续,您可以使用以下 JavaScript 代码:
```javascript
const checkList = ['9:00-10:00', '10:30-11:30', '13:00-14:00', '14:30-15:30', '16:00-17:00'];
const checkArr = ['9:00-10:00', '13:00-14:00'];
function isConsecutiveSelection(checkList, checkArr) {
// 将选中的时间范围映射为起始时间的数组
const selectedStartTimes = checkArr.map(timeRange => timeRange.split('-')[0]);
for (let i = 0; i < checkList.length - 1; i++) {
const currentTime = checkList[i];
const nextTime = checkList[i + 1];
if (selectedStartTimes.includes(currentTime.split('-')[0]) && selectedStartTimes.includes(nextTime.split('-')[0])) {
// 如果选中的起始时间和下一个时间范围的起始时间都在定义的时间列表中,则继续循环
continue;
} else if (selectedStartTimes.includes(currentTime.split('-')[0]) && !selectedStartTimes.includes(nextTime.split('-')[0])) {
// 如果选中的起始时间在定义的时间列表中,但下一个时间范围的起始时间不在,则不是连续选中
return false;
}
}
return true;
}
const isConsecutive = isConsecutiveSelection(checkList, checkArr);
console.log(isConsecutive);
```
这段代码将比较选中的数据和定义的数据,判断选中的数据是否是连续选中的。输出结果为`true`表示选中的数据是连续选中的,输出结果为`false`表示选中的数据不是连续选中的。
请注意,这里假设选中的数据和定义的数据都是合法的,并且时间范围的起始时间都在定义的时间列表中。如果输入的数据格式不一致或不满足这些条件,可能需要进行额外的验证和处理。