var text = "dave kdfkdf dave kdfkdfffff dave";
var myName = "dave";
var hits = new Array();
var counter;
var nameCounter;
for (counter = 0; counter <= text.length; counter++){
if (text[counter] === myName[0]) {
for (nameCounter=counter; nameCounter < (nameCounter+myName.length); nameCounter++) {
hits.push(text[nameCounter]);
}
}
}
上面的代码不起作用,但是当我将第二个循环的条件更改为:
nameCounter < (counter+myName.length);
然后它确实起作用。
你能解释为什么吗?谢谢 :)
最佳答案
简单的数学。
我知道myName可以是任何名称,具有任何长度,但是让我们继续使用“ dave”和4的长度,并将myName.length更改为4的硬编码值:
我们将以下内容作为循环的条件。它永远不会虚假,因此永远不会停止* ...
nameCounter < nameCounter + 4
*好,直到溢出或内存不足等。