Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用for循环查找另一个字符串中的一个字符串_Javascript_Loops_For Loop - Fatal编程技术网

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

Javascript 使用for循环查找另一个字符串中的一个字符串,javascript,loops,for-loop,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.substrin

我不明白为什么我的循环无法在
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);
}
var textToSearch=“亚伦蓝红亚伦绿亚伦黄亚伦”;
var myName=“亚伦”;
var命中率=[];
对于(i=0;i
您需要将
i
子字符串设置为
i+myName.length

var textToSearch=“亚伦蓝红亚伦绿亚伦黄亚伦”;
var myName=“亚伦”;
var命中率=[];
for(var i=0;i}
您需要将
i
子字符串设置为
i+myName.length

var textToSearch=“亚伦蓝红亚伦绿亚伦黄亚伦”;
var myName=“亚伦”;
var命中率=[];
for(var i=0;i}
另一种解决方案是使用
indexOf
。它将偏移量作为第二个参数

var textToSearch = "Aaron blue red Aaron green Aaron yellow Aaron";
var myName = "Aaron";
var hits = 0;
var lastIndex = 0;

while(lastIndex != -1){
   lastIndex = textToSearch.indexOf(myName, lastIndex);
   if (lastIndex != -1) {
     hits++;
     lastIndex++;
   } // Search at the next index
}

if(hits === 0){
   console.log("Your name wasn't found!");
} else {
   console.log("Your name was found " + hits + " times.");
}

另一种解决方案是使用
indexOf
。它将偏移量作为第二个参数

var textToSearch = "Aaron blue red Aaron green Aaron yellow Aaron";
var myName = "Aaron";
var hits = 0;
var lastIndex = 0;

while(lastIndex != -1){
   lastIndex = textToSearch.indexOf(myName, lastIndex);
   if (lastIndex != -1) {
     hits++;
     lastIndex++;
   } // Search at the next index
}

if(hits === 0){
   console.log("Your name wasn't found!");
} else {
   console.log("Your name was found " + hits + " times.");
}