首页 > 解决方案 > 如何实现一个函数,当传入一个强字符串时将返回,否则返回 false?

问题描述

如果它们以三个或更多结尾,则字符串很强烈!分数。然而,拥有!标记除结尾以外的任何地方都会形成非强度字符串。

我遇到的问题是当有一个!在一个字符串的中间。结果应该是假的,但它仍然是真的。

我的代码:

function intenseString (str) {
  if (str.slice(-3) !== "!!!") {
    return false;
    } 
  else if(str.slice(str.indexOf("!"))){
    return false;
    }
  else if(str.slice(-3) === "!!!"){
    return true
  }
}

标签: javascriptstringfunctionfor-loopif-statement

解决方案


使用indexOf而不是切片字符串:

const strings = ['abc!!!', 'abc!!de', 'abc!']

const intenseString = (str, chars) => str.indexOf(chars) >= 0

console.log(strings.map(x => intenseString(x, '!!!')))


推荐阅读