为什么我的循环条件不能通过将变量与自身进行比较而起作用?

时间:2015-12-24 23:33:57

标签: javascript

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);

然后它确实有效。

你可以解释一下,为什么?谢谢:))

1 个答案:

答案 0 :(得分:1)

简单的数学。 我理解myName可以是任何名称,任何长度,但让我们坚持使用“dave”和4的长度,并将myName.length更改为硬编码值4:

我们留下以下作为循环的条件。它永远不会错,因此永远不会停止* ...

nameCounter < nameCounter + 4

*好吧,直到它溢出,或耗尽内存等等。