For loop 理解这个JavaScript循环

For loop 理解这个JavaScript循环,for-loop,google-maps-api-3,For Loop,Google Maps Api 3,我使用这个for循环在googlemaps标记数组中查找特定的标记 google.maps.event.addListener(marker, 'dragend', () => { for (var i = 0, I = this.markers.length; i < I && this.markers[i] != marker; ++i); this.path.setAt(i, marker.getPosition()); }); google.maps

我使用这个for循环在googlemaps标记数组中查找特定的标记

google.maps.event.addListener(marker, 'dragend', () => {
  for (var i = 0, I = this.markers.length; i < I && this.markers[i] != marker; ++i);
  this.path.setAt(i, marker.getPosition());
});
google.maps.event.addListener(标记'dragend',()=>{
对于(变量i=0,i=this.markers.length;i
我知道当触发dragend事件时,循环被执行,代码也可以工作,但是我很难用简单的语言解释这个循环是如何工作的。我从未见过这样写的循环,我想更好地了解它是如何工作的


谢谢你的洞察力

首先,它使用ES6箭头的匿名函数:

其次,for
循环的
分配了2个变量
i
i
,而不仅仅是1个变量

var i = 0, I = this.markers.length;
它还使用2个条件语句

i < I && this.markers[i] != marker;
i
循环在标记列表中运行,直到找到最后一个标记,并沿这些点创建路径


这有帮助吗?

首先,它使用一个匿名函数,使用ES6箭头:

其次,for
循环的
分配了2个变量
i
i
,而不仅仅是1个变量

var i = 0, I = this.markers.length;
它还使用2个条件语句

i < I && this.markers[i] != marker;
i
循环在标记列表中运行,直到找到最后一个标记,并沿这些点创建路径


这有帮助吗?

我们初始化两个变量,i和i。i是数组的长度,i以零开始


只要i小于数组的长度,并且只要第i个元素不是“marker”,我们就循环。每次执行循环时,我们都会通过增加i移到数组的下一个元素。

我们初始化两个变量,i和i。i是数组的长度,i以零开始


只要i小于数组的长度,并且只要第i个元素不是“marker”,我们就循环。每次执行循环时,我们都会通过增加i移到数组的下一个元素。

语句1在循环(代码块)开始之前执行。[第一个分号前的语句]。您的示例是声明两个变量

语句2定义了运行循环的条件(代码块)。[第二个分号前的语句]。变量必须满足这些条件才能执行循环

每次循环(代码块)执行后,都会执行语句3。[最后一句话]。在循环执行后执行一些操作


请参见此处:

语句1在循环(代码块)开始之前执行。[第一个分号前的语句]。您的示例是声明两个变量

语句2定义了运行循环的条件(代码块)。[第二个分号前的语句]。变量必须满足这些条件才能执行循环

每次循环(代码块)执行后,都会执行语句3。[最后一句话]。在循环执行后执行一些操作


请参见此处:

循环与以下内容相同:

for (var i = 0; i < this.markers.length; ++i)
    if (this.markers[i] == marker)
       { break; }
for(变量i=0;i

看不出在这里使用
I
有什么意义。。。花式一行线

回路与以下相同:

for (var i = 0; i < this.markers.length; ++i)
    if (this.markers[i] == marker)
       { break; }
for(变量i=0;i

看不出在这里使用
I
有什么意义。。。想象一下一行代码

这对我来说很有意义,但是代码是这样的。markers[i]!=标记。循环会改变什么!=方法我正在对marker做一个操作,所以我不确定为什么循环会对marker以外的所有东西做操作。因为这是for循环的循环条件<如果A
相同,则循环,如果不是A
则中断。这对我来说是有意义的,但是代码是这样的。标记[i]!=标记。循环会改变什么!=方法我正在对marker做一个操作,所以我不确定为什么循环会对marker以外的所有东西做操作。因为这是for循环的循环条件<代码>循环如果一个
中断如果不是一个
操作应该修改“marker”正在发生的事情,这样我们就不会在“marker”上执行循环操作应该修改“marker”正在发生的事情,这样我们就不会在“marker”上执行循环它确实有帮助,我只是被!=标记。这会不会阻止循环在我单击的标记上执行操作,但该操作确实修改了标记,这是令人困惑的me@SethJohnson循环将继续,直到循环引用的当前标记等于最终标记。很抱歉,我仍然感到困惑。我将循环读取为,对于数组长度中不等于标记的每个元素,执行该操作。@SethJohnson Yes。。。现在我很困惑,为什么你会困惑,因为你似乎理解它:-)。事件是
dragend
,因此
marker
将是路径中的最终标记。循环将执行并设置路径,直到最后一个标记。很抱歉,事件名称有误导性
dragend
表示已完成拖动标记。在地图上拖动标记时,此操作将更新标记的位置。因此,循环应该忽略所有内容,但您当前拖动的标记没有?它确实有帮助,我只是被!=标记。这会不会阻止循环在我单击的标记上执行操作,但该操作确实修改了标记,这是令人困惑的me@SethJohnson循环将继续,直到循环引用的当前标记等于最终标记。很抱歉,我仍然感到困惑。我将循环读取为,对于数组长度中不等于标记的每个元素,执行该操作。@SethJohnson Yes。。。现在我不明白你为什么这么困惑因为你