Javascript 在JS的for循环中重新分配变量意味着什么?
我一直在努力编码一段时间,函数看起来很好,但循环是痛苦的 我非常理解这一行,除了以j=I开头的那一行,它指的是什么Javascript 在JS的for循环中重新分配变量意味着什么?,javascript,Javascript,我一直在努力编码一段时间,函数看起来很好,但循环是痛苦的 我非常理解这一行,除了以j=I开头的那一行,它指的是什么 text = "Blah blah blah blah blah blah Eric \ blah blah blah Eric blaeh blah Eric blah blah \ blah blah blah blah blah Eric"; var myName = "Eric"; var hits = []; for(var i = 0; i < text.l
text = "Blah blah blah blah blah blah Eric \
blah blah blah Eric blaeh blah Eric blah blah \
blah blah blah blah blah Eric";
var myName = "Eric";
var hits = [];
for(var i = 0; i < text.length; i++) {
if (text[i] === "E") {
for(var j = i; j < (myName.length + i); j++) {
hits.push(text[j]);
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}
text=“诸如此类诸如此类诸如此类\
诸如此类的埃里克诸如此类的埃里克诸如此类的\
诸如此类诸如此类诸如此类的埃里克”;
var myName=“Eric”;
var命中率=[];
对于(变量i=0;i
不确定这是否是您的音乐会:j和i只是循环将要运行的索引的占位符。当第二个for循环将j分配给i时,一旦第一个for循环通过,第二个for循环将从我从第一个for循环中断的索引(文本中的位置)开始。外部循环,定义var i=0
,在文本字符串的字符索引上循环。对于每个字符索引,if语句检查它是否为“E”。当i
为30时,字符串索引30处的字符(text[i]
)是第一个E。if返回true并在大括号中运行代码。此时,它开始一个新的循环,j
被设置为等于i
(即30),子循环在j
小于您的姓名长度(4)加上i
(30)或34时运行。该子循环的每次迭代都会将索引为j
(text[j]
)的字母推送到hits
,这意味着对于外部循环(或i
循环)的每次迭代,j
变量最初将具有i
变量的值。因此,对于外循环的第一次迭代,i
是0
Soj
最初是0
,第二次迭代时i
是1
所以j
重新初始化为1
。以此类推。以下for循环的定义取自
(报表1;报表2;报表3){
要执行的代码块}
语句1在循环(代码块)开始之前执行
语句2定义了运行循环的条件(代码
块)
语句3每次在循环(代码块)结束后执行
他被处决了
在您的情况下,var j=i
在循环之前执行,因此text[j]
在开始时将是text[i]
,并且每次j
增加时,text[j]
将是text[i]
后面的元素
因此,迭代进行
text[i]
->text[i+1]
->…->text[myName.length+i-1]
从外部循环的当前迭代开始内部循环。对不起,我是这里的新手,几天前开始编程,请您用一种技术性较低的语言详细说明一下,好吗?您的内部循环j
从外部循环(i
)当前进行的任何迭代开始。因此,如果i
=1,j
将从1开始计数