2015-07-21 82 views
0

这是我的电梯PROGRAMM:福尔循环不正常工作

var person = { 
 
    name: "Roman", 
 
    position: 7, 
 
    goal: 9 
 
}; 
 

 
var lift = { 
 
    getPosition: function() { 
 
    var x = Math.floor((Math.random() * 10) + 1); 
 
    return x; 
 
    }() 
 
}; 
 

 
console.log("Ok " + person.name + "! You are at " + person.position + " floor"); 
 
console.log("Lift is at " + lift.getPosition + " floor"); 
 

 
if (lift.getPosition > person.position) { 
 
    for (i = lift.getPosition; i >= person.position; i--) { 
 
    console.log(i); 
 
    } 
 
} else if (lift.getPosition < person.position) { 
 
    for (i = lift.getPosition; i <= person.Position; i++) { 
 
    console.log(i); 
 
    } 
 
} 
 
console.log("Please enter inside!");

有关提高电梯无法正常工作循环。升降但不升高。什么是错的?

+0

如果其他人缺少等于条件。 – MrMadsen

+0

提升对象内部的函数是否被调用并返回一个值? – code

回答

2

您已在第二个for循环中大写了Position

应该是

for (i = lift.getPosition; i <= person.position; i++) { 

(以小写pperson.position

由于没有Position属性在lift对象,for循环条件基本上是询问是否i <= undefined。这将始终评估为false,因此您的循环永远不会迭代。

+0

'getPosition'不是一个函数。该功能被立即调用并分配一个数字。但是否这是故意的,我不能说。 –

+0

糟糕。我是个白痴。感谢您指出@FelixKling。再来看看...... – sfletche

+0

您可能想解释为什么导致循环无法运行。 –

0

人。 p命题!=人。 P命题

0

JavaScript是一种区分大小写的语言,您应该关心大小写。您的person对象包含position,但不包含Position,这就是为什么它不起作用。只需在第二个循环中将Position更改为position即可。

你的第二个循环应该看起来像下面的循环。

for (i = lift.getPosition; i <= person.position; i++) { 
    console.log(i); 
    }