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); 
    }