JavaScript中如何判断输入参数是否存在于已定义的const常量数组中
存在的问题
- 数组定义语法错误:
'b'缺少闭合单引号,会触发语法报错 - 判断逻辑完全不符合需求:你需要判断的是「用户传入的参数是否在
hi数组中」,而不是判断参数是否等于字符串"hi" - 逻辑运算符优先级错误:
!args[0] == "hi"会优先执行!args[0]得到布尔值,再和字符串对比,结果永远为false,因此两个判断分支都不会触发
修复后的实现
首先修正常量定义:
const hi = [ 'a', 'b', 'c' ]
判断逻辑直接使用数组includes方法检测元素是否存在即可:
if (hi.includes(args[0])) { return reply('Done, its there! :D') } else { return reply('Its not there. I cant make magic things.') }
如果需要兼容低版本JS环境,可以替换为indexOf写法:
if (hi.indexOf(args[0]) !== -1) { return reply('Done, its there! :D') } else { return reply('Its not there. I cant make magic things.') }
内容的提问来源于stack exchange,提问作者ThePinkLyna
相关产品推荐
相关产品推荐

