函数:根据字符串中是否存在子字符串返回 True/False
Function: return True/False based on presence of substring in string
我正在做CoderByte的初学者JavaScript挑战。我的代码在"真"的情况下工作,但是一旦我添加一个 else 子句来处理"假"情况,它就会开始行为不端。
挑战: 编写一个函数 ABCheck(str) 来获取正在传递的 str 参数,如果字符 a 和 b 至少在字符串中的任何位置之间恰好分隔 3 位(即。"车道借用"将导致 true,因为 A 和 B 之间正好有三个字符)。否则返回字符串 false。
观察:如果我删除该部分,代码无论如何都会起作用。 但是,如果我添加一个条款来处理虚假案件,我觉得计数器会破裂。例如,对于 false 部分,如果 (AxxB) 位于字符串的最开头,它就会起作用,但即使它在字符串 (zAxxB) 的后面,它也返回 false。也许计数器坏了,或者我的 else 子句放在了不正确的位置?类似的东西。
感谢您的任何提示以及对初学者的耐心等待!
function ABCheck(str) {
//normalizes the string into an array without spaces
var arr = str.toLowerCase().split("").join("").replace( /'s/g, "")
//searches the entire string for the substring and returns true if it's found
for(var i = 0; i < arr.length; i++){
if(arr[i].indexOf('a') != -1 && arr[i+3].indexOf('b') != -1){
return true
}
//returns false if substring doesn't exist in string
else{
return false
}
}
}
ABCheck(readline());
这是因为只有当
它找不到条件arr[i].indexOf('a') != -1 && arr[i+3].indexOf('b') != -1
true
时,它才会返回false
并且功能结束。
function ABCheck(str) {
var arr = str.toLowerCase().split("").join("").replace( /'s/g, "")
for(var i = 0; i < arr.length; i++){
if(arr[i].indexOf('a') != -1 && arr[i+3].indexOf('b') != -1){
return true
}
}
return false;
}
因此,它将随时检查条件是否为真,它将在for
循环后返回true
其他明智,它将返回false
。
注意:- 我认为.split("").join("")
是不必要的工作。
你应该
把return false;
从循环for(var i = 0; i < arr.length; i++){...}
之外。
相关文章:
- PHP strtotime()为JavaScript日期字符串返回false
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 解析JSON字符串返回未定义的结果
- Javascript:解析csv中的字符串返回NaN(不是数字)
- 使用$se.trustAsHtml呈现字符串返回未定义的结果
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 如何使用一些变量参数从javascript函数调用 asp.net C#函数并从C#函数获取字符串返回
- 函数:根据字符串中是否存在子字符串返回 True/False
- 如何使用 JavaScript 区分布尔值和字符串返回值
- 将 React 的方法 'return' 作为字符串返回
- 调用不带括号的函数会将整个函数作为字符串返回
- 如何在 ajax 调用中接受来自控制器的字符串返回
- Jquery - 匹配动态日期字符串返回使用长度的匹配量
- json_encode使用 jquery.get() 发布数据时将数组作为字符串返回
- 缓冲区中的nodejs解码字符串返回多行字符串
- 如何将关联数组键作为字符串返回
- python's mechanize和forms:javascript字符串返回
- 将呈现的ejs视图作为服务内的html字符串返回
- CSV文件作为单个字符串返回
- jQuery中的HTML字符串返回错误