你可以使用 JavaScript 来生成从早上6点到晚上12点,每半个小时为一个时间段的对象,并将这些时间段放入一个数组中。以下是一个封装好的方法:
```javascript
function generateTimeSlots() {
const timeSlots = [];
const startHour = 6; // 早上6点
const endHour = 24; // 晚上12点
for (let hour = startHour; hour < endHour; hour++) {
for (let minute = 0; minute < 60; minute += 30) {
const startTime = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
const nextMinute = minute + 30;
const nextHour = nextMinute === 60 ? hour + 1 : hour;
const nextMinuteFormatted = nextMinute === 60 ? '00' : nextMinute.toString().padStart(2, '0');
const endTime = `${nextHour.toString().padStart(2, '0')}:${nextMinuteFormatted}`;
timeSlots.push({ start: startTime, end: endTime });
}
}
return timeSlots;
}
// 调用方法
const timeSlots = generateTimeSlots();
console.log(timeSlots);
```
### 解释:
1. **`startHour` 和 `endHour`**: 分别表示开始时间(6点)和结束时间(24点)。
2. **`padStart(2, '0')`**: 用于确保小时和分钟始终是两位数格式(例如,`6:00` 而不是 `6:0`)。
3. **`timeSlots.push({ start: startTime, end: endTime })`**: 将每个时间段作为一个对象推入数组。
### 输出示例:
```javascript
[
{ start: '06:00', end: '06:30' },
{ start: '06:30', end: '07:00' },
{ start: '07:00', end: '07:30' },
{ start: '07:30', end: '08:00' },
// ...
{ start: '23:00', end: '23:30' },
{ start: '23:30', end: '24:00' }
]
```
这个方法会生成一个包含所有时间段的数组,每个时间段都是一个对象,包含 `start` 和 `end` 两个属性,分别表示时间段的开始和结束时间。