我在玩这个游戏时重新学习javascript
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的基本功能?
由于
答案 0 :(得分:0)
这里可能有一些错误:
for each
应为for
for-in
构造迭代集合(即数组和对象),并将“index”传递给in
之前命名的变量。在您的代码中elevators
是一个电梯对象数组,如elevators = [elevator1, elevator2, ..., elevatorN]
,每次for-in
循环e
将成为电梯的索引e = 0, then e = 1, ..., e = n
。因此,请尝试命名e
,i
并在循环开头声明var e = elevators[i]
,您的代码应该可行。