理解这个JavaScript循环

时间:2016-01-12 02:21:28

标签: 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());
});

据我所知,当dragend事件被触发时,循环被执行,代码可以工作,但是我很难用简单的语言解释这个循环是如何工作的。我从未见过这样的循环,我想更好地理解它是如何工作的。

感谢您的任何见解!

4 个答案:

答案 0 :(得分:2)

首先,它使用ES6箭头使用匿名函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

其次,for循环分配了2个变量iI,而不只是1。

var i = 0, I = this.markers.length;

它还使用了2个条件语句。

i < I && this.markers[i] != marker;

循环遍历标记列表,直到找到最后一个,并沿这些点创建路径。

这有帮助吗?

答案 1 :(得分:1)

循环与以下内容相同:

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

在这里看不到使用I ...花哨的一个班轮

答案 2 :(得分:0)

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

我们循环只要我小于数组的长度,并且只要第i个元素不是#34;#34;标记。每次执行循环时,我们都会通过递增i来继续到数组的下一个元素。

答案 3 :(得分:0)

语句1在循环(代码块)启动之前执行。 [第一个分号前的陈述]。你的例子是声明两个变量。

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

每次执行循环(代码块)后执行语句3。 [最后一个声明]。循环执行后做一些事情。

见这里:http://www.w3schools.com/js/js_loop_for.asp