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 - Fatal编程技术网

Javascript 为什么第二个for循环需要+;我

Javascript 为什么第二个for循环需要+;我,javascript,loops,Javascript,Loops,我理解所有这些以及它是如何工作的,除了:为什么第二个for循环需要“+I”?为什么不能用“+1”来代替呢 text=“诸如此类诸如此类诸如此类 诸如此类诸如此类埃里克诸如此类埃里克诸如此类 诸如此类诸如此类诸如此类的埃里克”; var myName=“Eric”; var命中率=[]; //在课文中寻找“E” 对于(变量i=0;i

我理解所有这些以及它是如何工作的,除了:为什么第二个for循环需要“+I”?为什么不能用“+1”来代替呢

text=“诸如此类诸如此类诸如此类
诸如此类诸如此类埃里克诸如此类埃里克诸如此类
诸如此类诸如此类诸如此类的埃里克”;
var myName=“Eric”;
var命中率=[];
//在课文中寻找“E”
对于(变量i=0;i
循环的
j
偏移了
i

i
从0到
文本。长度
,例如从0到100

每当发现
“E”
j
循环从
i
i+myName.length
,例如从50到54

您还可以将
j
从0循环到
myName.length
并执行
text[j+i]



请注意,此代码实际上并不查找
“Eric”
,而是查找
“E”
,然后记录接下来的4个字符。如果您的输入字符串是
“EaEbEc foo”
,那么您的结果将是
[“EaEb”、“EbEc”、“Ec f”]

它之所以执行+i,是因为代码试图将Eric的每一次出现从文本推到命中,所以它想要计算myname.length字母。这也可以通过j从0开始并使用
文本[j+i]

i等于文本内部的当前位置来实现。比如说

     v (i = 5 Starting from 0)
Blah Blah Blah

所以i+name.length是单词的结尾

          v->v (i=11 -> i+lenth=14)
Blah Blah Eric Blah
如果你选择+1,你会得到

 v<-------v (i=11 -> 1)
Blah Blah Eric Blah
v1)
胡说八道埃里克胡说八道

因为
myName.length+i
Eric
i
的起始位置字符开始的结束字符位置,所以循环应该在这里结束。我没有意识到第二个for循环的“停止计数器”从位置0开始计数,我想它会在“开始计数器”开始计数的地方开始计数开始数数!现在一切都有意义了!!!而且做
.push(text[j+i])
也有意义。非常棒这个地方太棒了,谢谢大家!!!我希望我能给你们所有人打勾。。
          v->v (i=11 -> i+lenth=14)
Blah Blah Eric Blah
 v<-------v (i=11 -> 1)
Blah Blah Eric Blah