编写判断传入参数是否包含'dota'字符的函数实现求助
含'dota'字符判定的函数实现指南
规则对齐(从给定测试用例推导)
根据示例的预期返回结果,可以明确函数的判定标准:
- 匹配为不区分大小写的子串检测:文本中出现
Dota、DOTA、dota等任意大小写组合的'dota'字符串时,均判定为命中 - 异常输入兜底:当传入的参数不是有效字符串时,函数不应抛出运行错误,直接返回false即可
分步实现逻辑
- 第一步:接收传入的检测参数,先做类型校验:非字符串类型的参数直接返回false,规避空值、数字、对象等无效输入引发的报错
- 第二步:把校验通过的字符串统一转换为全小写格式,抹平不同写法的大小写差异
- 第三步:在转换后的文本中检索是否存在'dota'子串
- 第四步:把检索得到的布尔结果直接作为函数返回值
可直接运行的参考实现(JavaScript)
function hasDota(inputText) { // 非字符串输入兜底 if (typeof inputText !== 'string') return false; // 统一转小写后匹配,消除大小写差异影响 return inputText.toLowerCase().includes('dota'); }
示例验证:
- 输入值为
"Dota is better than league of legends":转小写后文本包含'dota',返回true,符合预期- 输入值为
"Counter Strike is better than Fortnite":转小写后无对应子串,返回false,符合预期
新手常踩的逻辑漏洞
- 直接对原始输入做严格大小写匹配:这种写法会漏掉首字母大写的'Dota'这类场景,导致测试用例返回结果和预期不符
- 省略空值/类型校验:直接对入参调用
toLowerCase方法,当传入null、undefined等值时会直接触发运行时报错
内容的提问来源于stack exchange,提问作者Kaio Henrique
相关产品推荐
相关产品推荐

