如何简化JavaScript中重复的月份时间维度统计输出代码?
优化重复代码的方案
你的代码存在大量重复逻辑,完全可以通过数据抽象+循环来精简,以下是具体实现:
优化后的代码
// 把月份和对应天数整理成数组对象 const months = [ { name: 'July', days: 31 }, { name: 'April', days: 30 }, { name: 'Febuary', days: 28 } ]; // 定义时间单位的显示文本和换算系数 const timeUnits = [ { label: 'Days', multiplier: 1 }, { label: 'Hours', multiplier: 24 }, { label: 'Minutes', multiplier: 24 * 60 }, { label: 'Seconds', multiplier: 24 * 60 * 60 } ]; // 嵌套循环遍历月份和时间单位,输出结果 for (const month of months) { for (const unit of timeUnits) { console.log(`${unit.label} in ${month.name}:`, month.days * unit.multiplier); } }
方案说明
- 数据与逻辑分离:所有可变信息(月份名称、天数、时间单位规则)都存在数组中,后续要添加其他月份或时间单位时,只需修改数组,不用重复编写
console.log语句。 - 消除重复代码:通过两层循环替代了原代码中12行重复的
console.log调用,代码更简洁也更易维护。
你之前尝试数组和循环没成功,大概率是没把时间单位的换算逻辑也抽象出来,只处理了月份的循环,导致仍要重复编写小时、分钟、秒的计算代码。
内容的提问来源于stack exchange,提问作者danik0011
相关产品推荐
相关产品推荐

