为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 .indexOf 不读取字符串中字符的位置

为什么我的 .indexOf 不读取字符串中字符的位置

犯罪嫌疑人X 2023-06-15 17:12:11
我目前正在尝试让我的 .indexOf 读取我的字符在我的字符串中的位置。代码如下所示:var myString = 'I\'m a "fun ninja" string';   if (myString.indexOf("ninja") === -1)    {                console.log ("The word ninja starts at position " + myString.indexOf("ninja"));    } else {                console.log ("The word ninja is not in the string");            }它应该说,“忍者这个词从位置 11 开始”,但它最终说的是“忍者这个词不在字符串中”,而它显然在字符串中。谁能告诉我我做错了什么?
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

问题出在你的 if 语句中,你正在比较 indexOf 的结果是否为 === -1,但如果 indexOf 函数返回 -1 则意味着未找到子字符串,因为他在你的字符串中找到“ninja”它不执行代码而是跳转到 else。


它应该是:


if (myString.indexOf("ninja") != -1){

    console.log ("The word ninja starts at position " + myString.indexOf("ninja"));

} else {

    console.log ("The word ninja is not in the string");

}


查看完整回答
反对 回复 2023-06-15
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

这会给你想要的结果。2件事情要注意:

  1. 该字符串是使用单引号构建的,因此其中的任何单引号都需要使用反斜杠进行转义\

  2. 声明中的比较if是错误的。您应该检查索引是否不是 -1,这意味着该字符串确实存在。

var myString = 'I\'m a "fun ninja" string';


if (myString.indexOf("ninja") !== -1) {


   console.log ("The word ninja starts at position " + myString.indexOf("ninja"));


} else {


   console.log ("The word ninja is not in the string");


}


查看完整回答
反对 回复 2023-06-15
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信