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);
然后它确实有效。
你可以解释一下,为什么?谢谢:))答案 0 :(得分:1)
简单的数学。 我理解myName可以是任何名称,任何长度,但让我们坚持使用“dave”和4的长度,并将myName.length更改为硬编码值4:
我们留下以下作为循环的条件。它永远不会错,因此永远不会停止* ...
nameCounter < nameCounter + 4
*好吧,直到它溢出,或耗尽内存等等。