不能在javascript中为每个循环调用一个方法吗?

时间:2015-02-05 22:01:50

标签: javascript

我在玩这个游戏时重新学习javascript

http://play.elevatorsaga.com/

doc:http://play.elevatorsaga.com/documentation.html#docs

目前正试图击败4级,那里有两部电梯,我想用每个循环来通过每个电梯对象,然后调用方法来做类似的事情:

            var maxFloor = 7;
            var basement = 0;
            // when each elevator is idle, go to each floor
            for each(var e in elevators){
                e.on("idle", function() {
                    //The elevator is idle, so let's go to all the floors (or did we forget one?)
                    for(var i = basement; i < maxFloor; i++){
                        e.goToFloor(i);     
                    }
                });
            }

为什么这不编译?在__.on()循环之外调用for each方法时,一切正常。我是否缺少javascript的基本功能?

由于

1 个答案:

答案 0 :(得分:0)

这里可能有一些错误:

  • 根据您的浏览器,for each应为for
  • for-in构造迭代集合(即数组和对象),并将“index”传递给in之前命名的变量。在您的代码中elevators是一个电梯对象数组,如elevators = [elevator1, elevator2, ..., elevatorN],每次for-in循环e将成为电梯的索引e = 0, then e = 1, ..., e = n 。因此,请尝试命名ei并在循环开头声明var e = elevators[i],您的代码应该可行。