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

JavaScript代码输出异常求助:预期输出'open'却显示'invalid day'

问题排查与修复
  • 核心问题:参数传递不匹配
    你的函数workingHours定义时只接受一个参数input,但调用时传了两个独立参数"11"和"Tuesday"。这会导致:

    • input实际等于第一个参数"11"(字符串类型)
    • input[0]是字符串的第一个字符"1",转成数字后为1
    • input[1]是字符串的第二个字符"1",所以day的值是"1",完全不匹配任何日期选项,最终触发invalid day分支
  • 修复方案二选一

    方案1:修改函数调用,将参数打包成数组传入

    workingHours(["11", "Tuesday"])
    

    方案2:修改函数定义,直接接收两个独立参数(更符合直观调用逻辑)

    function workingHours(hourStr, day) {
      let hour = Number(hourStr);
    
      if (day == "Monday" || day == "Tuesday" || day == "Wednesday" || day == "Thursday" || day == "Friday" || day == "Saturday") {
        if (hour >= 10 && hour <= 18) {
          console.log("open");
        } else if (hour < 10 || hour >= 19) {
          console.log("closed");
        } else {
          console.log("invalid hour");
        }
      } else if (day == "Sunday") {
        if (hour <= 23 && hour >= 0) {
          console.log("closed");
        } else {
          console.log("invalid hour");
        }
      } else {
        console.log("invalid day");
      }
    }
    
    workingHours("11", "Tuesday") // 现在可正常输出open
    
  • 额外优化建议
    可以把日期判断改成数组包含检查,让代码更简洁:

    const workDays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
    if (workDays.includes(day)) {
      // 原工作日逻辑
    }
    

内容的提问来源于stack exchange,提问作者Bojidar Kaloyanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:52:09