Node.js整除判断函数未通过校验求助:A、B整除性任务排查
排查你的Node.js代码问题
我帮你找出了几个导致校验不通过的关键问题,咱们一个个说:
1. 命令行参数获取错误
process.argv的结构你搞混了:
process.argv[0]:Node.js的执行路径(比如/usr/local/bin/node)process.argv[1]:你的脚本文件名(比如task.js)- 真正的用户输入参数是从
process.argv[2]开始的
你现在用process.argv[1]和process.argv[2]传参,相当于把脚本名和第一个输入参数丢进了函数,完全不符合要求!
2. 参数类型未转换
从process.argv拿到的参数都是字符串类型,虽然JS里字符串做取模运算偶尔能得到结果,但严格来说必须转成整数,避免潜在的类型错误。
3. 函数返回值不符合要求
你的函数里写的是return console.log(true),但console.log()本身的返回值是undefined,所以你的函数实际返回的不是要求的布尔值true/false,而是undefined。校验器大概率是在检查函数的返回值,而不是控制台输出。
修正后的代码
function notDivide(a, b) { // 实现逻辑:B不整除A 且 A不整除B(匹配你的示例需求) return (a % b !== 0) && (b % a !== 0); } // 获取正确的参数并转换为整数 const A = parseInt(process.argv[2]); const B = parseInt(process.argv[3]); // 调用函数并打印结果(满足控制台输出要求) console.log(notDivide(A, B));
咱们验证示例场景:执行node task.js 5 3,A=5、B=3,5%3=2≠0且3%5=3≠0,返回true,完全符合预期。
再测试几个边界情况:
- 输入
node task.js 4 2:4能被2整除,返回false - 输入
node task.js 6 4:6%4=2≠0、4%6=4≠0,返回true
这样应该就能通过校验器的检测了。
内容的提问来源于stack exchange,提问作者N.Gr
相关产品推荐
相关产品推荐

