You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决JavaScript用switch实现daysInMonth函数的报错问题

问题原因

  • 入参与分支匹配类型不一致:你的代码中switch的case值全部为字符串类型(如'1'、'2'),但需求明确要求入参是整数类型的1~12。JavaScript的switch采用严格相等(===)做匹配判定,整数1和字符串'1'判定结果为不相等,因此所有合法整数入参都会进入default分支,返回错误提示。
  • 返回值类型不符合要求:你当前返回的天数为字符串格式(如'31'),需求要求返回数字类型的对应天数。

修正后代码

function daysInMonth(month) {
  switch (month) {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
      return 31;
    case 2:
      return 28;
    case 4: case 6: case 9: case 11:
      return 30;
    default:
      return 'You have to put a month from 1 to 12';
  }
}
// 测试示例
const result1 = daysInMonth(1); // 返回31
const result2 = daysInMonth(6); // 返回30
const result3 = daysInMonth(2); // 返回28

修正后代码将case值改为数字类型,同时返回值也调整为数字类型,即可符合测试用例要求。

内容的提问来源于stack exchange,提问作者Ana Modesto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:05