用JS写一个函数 根据arr = ['01:00-02:00', '03:00-04:00'] 得到res = ['00:00-00:59', '02:01-02:59', '04:01-23:59']
时间: 2023-11-05 07:23:51 浏览: 36
好的,我可以为您编写这个函数。以下是使用 JavaScript 编写的函数:
```javascript
function getAvailableTimes(arr) {
const start = '00:00';
const end = '23:59';
let result = [];
for (let i = 0; i < arr.length; i++) {
const [startTime, endTime] = arr[i].split('-');
const nextTime = i < arr.length - 1 ? arr[i + 1].split('-')[0] : end;
if (startTime !== start) {
result.push(`${start}-${getTimeString(subtractOneMinute(startTime))}`);
}
if (nextTime && endTime !== nextTime) {
result.push(`${getTimeString(addOneMinute(endTime))}-${nextTime}`);
}
}
if (arr[arr.length - 1].split('-')[1] !== end) {
result.push(`${getTimeString(addOneMinute(arr[arr.length - 1].split('-')[1]))}-${end}`);
}
return result;
}
function addOneMinute(time) {
const [hours, minutes] = time.split(':');
const totalMinutes = parseInt(hours, 10) * 60 + parseInt(minutes, 10);
const newTotalMinutes = totalMinutes + 1;
const newHours = Math.floor(newTotalMinutes / 60).toString().padStart(2, '0');
const newMinutes = (newTotalMinutes % 60).toString().padStart(2, '0');
return `${newHours}:${newMinutes}`;
}
function subtractOneMinute(time) {
const [hours, minutes] = time.split(':');
const totalMinutes = parseInt(hours, 10) * 60 + parseInt(minutes, 10);
const newTotalMinutes = totalMinutes - 1;
const newHours = Math.floor(newTotalMinutes / 60).toString().padStart(2, '0');
const newMinutes = (newTotalMinutes % 60).toString().padStart(2, '0');
return `${newHours}:${newMinutes}`;
}
function getTimeString(time) {
const [hours, minutes] = time.split(':');
return `${hours}:${minutes}`;
}
```
您可以像这样使用它:
```javascript
const arr = ['01:00-02:00', '03:00-04:00'];
const res = getAvailableTimes(arr);
console.log(res); // ['00:00-00:59', '02:01-02:59', '04:01-23:59']
```
该函数将返回一个字符串数组,其中包含可用时间段的开始和结束时间。