javascript - 使用 for 循环查找另一个字符串中的一个字符串

标签 javascript loops for-loop

我不明白为什么我的循环无法找到 textToSearch 中出现的每个 myName。如果它靠近 textToSearch 的开头,它只能找到一个匹配项。

var textToSearch = "Aaron blue red Aaron green Aaron yellow Aaron";
var myName = "Aaron";
var hits = [];
for(i = 0; i < textToSearch.length; i++){
   if(textToSearch.substring(i, myName.length) === myName){ 
     hits.push(textToSearch.substring(i, myName.length));
   }
}
if(hits.length === 0){
   console.log("Your name wasn't found!");
} else {
   console.log("Your name was found " + hits.length + " times.");
   console.log(hits);
}

最佳答案

您需要从 ii + myName.length 进行子字符串化。

var textToSearch = "Aaron blue red Aaron green Aaron yellow Aaron";
var myName = "Aaron";
var hits = [];
for(var i = 0; i < textToSearch.length; i++){
   if(textToSearch.substring(i, i + myName.length) === myName){ 
     hits.push(textToSearch.substring(i, i + myName.length));
   }
}
if(hits.length === 0){
   console.log("Your name wasn't found!");
} else {
   console.log("Your name was found " + hits.length + " times.");
   console.log(hits);
}

顺便说一句,有更好的方法来计算出现次数

var textToSearch = "Aaron blue red Aaron green Aaron yellow Aaron";

console.log((textToSearch.match(/Aaron/g) || []).length)

关于javascript - 使用 for 循环查找另一个字符串中的一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45057804/

相关文章:

javascript - 从选择按钮添加文本到输入

javascript - 将文本字段元素添加到 div 的样式

javascript - D3 按序数排序并选择前 5 个

jquery - 循环遍历每个 HTML 表格列并使用 jQuery 获取数据

c# - 3D 数组到 2D 数组 - 忽略维度

JavaScript 函数仅匹配 Google URL

javascript - JS for 循环填充数组

c++ - 每 8 位将 bitset<64> 转换为字符串

php - 可以使此代码有效/加速吗?

java - if else -if 意外消息