javascript - 不正确地返回 true

标签 javascript algorithm

Coderbyte 挑战赛 7

有人可以帮忙吗?下面的函数应该检查字符串中的每个字母是否有一个“+”和两边,并返回 true,如果字母不受 + 限制则返回 false。但是当我传递下面的字符串时,它传递了 true,而它应该是 false,因为 k 在右侧没有 +。提前致谢。

str = '+f+++l+k=+'

alpha = 'abcdefghijklmnopqrstuvwxyz'
function SimpleSymbols(str) {
  str = str.toLowerCase()
  for (i=0 ; i<str.length ; i++)  {

    if (alpha.indexOf(str.charAt(i)) > 0 && i === 0)  {
        return false 
    }
    else if (alpha.indexOf(str.charAt(str.length -1)) > 0) {
        return false 
    }
     else  if (alpha.indexOf(str.charAt(i)) > 0 && 
        (str.charAt(i-1) !== '+' || str.charAt(i+1) != '+')) {
         return false
    }
     else {return true}    
   }       
}

最佳答案

您的函数每次在第一次迭代时都会中断 for 循环。您只需要在 false 分支上打破循环。然后在 for 循环之后简单地返回 true(这意味着直到该行它才以 false 退出。

关于javascript - 不正确地返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879269/

相关文章:

arrays - 如何计算多维数组中的反转?

c - libc 随机数生成器有缺陷?

C++矩阵计算效率

javascript - 如何在 ng-show 隐藏某些元素时重新加载 css 设置

javascript - 简单的 JavaScript XPath 语法模式验证器(无上下文)?

javascript - 从字符串获取 Mongoose ObjectId

javascript - 如何完全删除列表项及其内容?

asp.net - 如何在 Repeater Item 中找到选中的 RadioButton?

algorithm - 根据坐标查找哪个区域包含一个点

java - 如何判断数组中任意值的总和是否等于n