前端开发者的数据生成利器:JavaScript枚举函数全解析
每次在Vue或React项目中手动编写日期选择器、时间下拉框或序号列表时,你是否感到效率低下且容易出错?作为前端开发者,我们经常需要处理各种格式化的枚举数据,从带前导零的月份到15分钟间隔的时间点,再到Excel风格的列号标记。这些看似简单的数据,如果每次都手动编写,不仅耗时耗力,还容易引入错误。
1. 日期枚举:告别手动输入的烦恼
日期相关的枚举数据是前端开发中最常见的需求之一。无论是后台管理系统的筛选条件,还是移动端H5表单的日期选择器,我们都需要准备各种格式的日期数据。
1.1 月份枚举的多种形式
考虑一个简单的月份枚举需求,我们可能需要以下几种格式:
javascript复制// 基础月份数组
const basicMonths = Array.from({length: 12}, (_, i) => `${i + 1}`);
// 带前导零的月份
const zeroPaddedMonths = Array.from({length: 12}, (_, i) =>
`${i + 1}`.padStart(2, '0'));
// 带"月"后缀的月份
const monthWithSuffix = basicMonths.map(m => `${m}月`);
// 带前导零和"月"后缀的月份
const fullMonthNames = zeroPaddedMonths.map(m => `${m}月`);
提示:使用
Array.from和padStart方法可以优雅地生成各种格式的月份数据,避免了手动输入可能导致的错误。
1.2 星期枚举的中文处理
对于星期几的枚举,我们通常需要两种格式:"周X"和"星期X"。以下是一个通用的生成函数:
javascript复制function generateWeekdays(prefix = '周') {
const days = ['日', '一', '二', '三', '四', '五', '六'];
return days.map(day => `${prefix}${day}`);
}
// 使用示例
const weekdaysZhou = generateWeekdays(); // ["周日", "周一", ..., "周六"]
const weekdaysXingqi = generateWeekdays('星期'); // ["星期日", "星期一", ..., "星期六"]
这种封装方式不仅代码简洁,而且可以轻松扩展其他前缀格式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 时间枚举:精准到分钟的时间点生成
在预约系统、会议安排等场景中,我们经常需要生成以15或30分钟为间隔的时间点列表。手动编写这些时间点不仅繁琐,而且容易出错。
2.1 时间间隔生成函数
下面是一个灵活的时间点生成函数,可以指定间隔分钟数:
javascript复制function generateTimeSlots(interval = 15, startHour = 0, endHour = 24) {
const slots = [];
for (let hour = startHour; hour < endHour; hour++) {
for (let minute = 0; minu
