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

如何修正climb函数的if语句逻辑以满足功能测试要求?

解决climb函数的逻辑问题

咱来看看你写的climb代码为啥没正常工作——主要是两个关键逻辑没踩对题目要求:

  1. 你只检查了arguments[0]是否存在,但题目要求第一个参数必须是字符串类型,如果传了数字、布尔值这类非字符串的真值,你的逻辑就跑偏了
  2. 你只判断了arguments[1] == false,但题目说的是falsy值(包括undefined、null、0、空字符串、false这些),直接判断等于false会漏掉比如不传第二个参数(此时arguments[1]是undefined)的情况

给你修正后的代码,完美符合所有测试要求:

function climb(){
  // 先验证第一个参数是否为字符串类型
  if (typeof arguments[0] === 'string') {
    // 利用!运算符判断第二个参数是否为falsy值
    if (!arguments[1]) {
      return "On belay?";
    } else {
      return "Climbing!";
    }
  } else {
    return "Let's set up the belay rope before we climb.";
  }
}

咱们来对应测试用例核对下:

  • 调用climb():第一个参数不存在,自然不是字符串,返回兜底提示
  • 调用climb("Benny", true)或climb("any string here", true):第一个是字符串,第二个是真值,返回"Climbing!"
  • 调用climb("Benny", false)或climb("any string here"):第一个是字符串,第二个是falsy(false或者undefined),返回"On belay?"
  • 其他情况比如climb(123, true)、climb(null):都会返回兜底的提示字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:24