javascript - 循环计数器重置为-1

标签 javascript for-loop indexof

这是一个针对字符串中单词“Wrox”的简单搜索计数器的类(class)项目。

我的代码:

var myString = "Welcome to Wrox books. ";
myString = myString + "The Wrox website is www.wrox.com. ";
mystring = myString + "Visit the Wrox website today. Thanks for buying Wrox. ";

var i = 0;
var wroxCount = 0;

while (i <= myString.length) {
    i = myString.indexOf("Wrox",i); 
    wroxCount++;  
    i++;
}

它工作正常,直到i由于某种原因决定重置为-1。它一直有效,直到突然不起作用。我不知道我做错了什么。

最佳答案

String.indexOf 返回-1当在字符串中找不到您要搜索的子字符串时。

因此,这就是您应该在 while 条件中检查的内容,而不是 i <= myString.length因为如果i为正,表示在字符串内部找到了子字符串,因此索引小于长度。

i = myString.indexOf('Wrox');
while (i > 0) {
    wroxCount++;
    i = myString.indexOf('Wrox', i + 1);
}

关于javascript - 循环计数器重置为-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277579/

相关文章:

class - 将类成员函数传递给 for_each

java - 将 for 循环外的值传递给变量 - java::processing

javascript - IndexOf 无法正确处理包含数组的对象

javascript - 文档和子文档的 $sum 按 "$author"(MongoDB)

javascript - ajaxify-html5.js 只重新加载页面的一部分?

java - 如何打印两个前端相接触的三角形?

javascript indexOf map 函数的结果

arrays - 在 Ruby 中,如何以不区分大小写的方式查找数组中元素的索引?

javascript - JS中有没有改变参数给定的全局变量的函数?

javascript - 当用户点击 table tbody tr 时