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

Codewars题目报错排查:isDivisible函数返回空而非预期值

解决isDivisible函数返回空值的问题

嘿,我一眼就看出问题大概率出在哪了——你写的函数没有正确返回布尔值,导致调用后得到的是undefined(也就是你说的“空值”)。

咱们先复盘下题目的核心要求:函数isDivisible(n, x, y)需要判断n是否能同时被x和y整除,返回true或false。如果函数里只有判断逻辑但没写return语句,JS默认就会返回undefined,这就是你遇到的问题根源。

常见错误写法示例

比如你可能写了类似这样的代码:

function isDivisible(n, x, y) {
  // 只有判断,但没返回结果
  if (n % x === 0 && n % y === 0) {
    true;
  } else {
    false;
  }
}

或者更简洁但同样错误的写法:

function isDivisible(n, x, y) {
  // 直接写表达式,但没返回
  n % x === 0 && n % y === 0;
}

这两种写法都不会把判断结果返回给调用者,所以自然得到空值。

正确的解决方案

其实逻辑很简单,只要把判断结果通过return返回就行,有两种常用写法:

写法1:完整的if-else返回

function isDivisible(n, x, y) {
  if (n % x === 0 && n % y === 0) {
    return true;
  } else {
    return false;
  }
}

写法2:直接返回表达式结果(更简洁)

因为n % x === 0 && n % y === 0这个逻辑表达式本身就会返回布尔值true或false,所以可以直接把它作为返回值:

function isDivisible(n, x, y) {
  return n % x === 0 && n % y === 0;
}

验证示例

  • 调用isDivisible(12,2,6):12能被2和6整除,表达式返回true,符合预期;
  • 调用isDivisible(100,5,3):100不能被3整除,表达式返回false,完美解决你遇到的“预期false却得到空值”的问题。

另外题目说明所有输入都是正非零整数,所以咱们不用处理除以0的异常情况,这个逻辑完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:03:43