这是我的升降机程序:
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 :(得分:2)
你已经在第二个for循环中大写Position
。
应该是
for (i = lift.getPosition; i <= person.position; i++) {
(p
中的小写person.position
)
由于Position
对象中没有lift
属性,for循环条件基本上是询问i <= undefined
。这将始终评估为false,因此您的循环永远不会迭代。
答案 1 :(得分:0)
person。 p osition!= person。 P osition
答案 2 :(得分:0)
JavaScript是一种区分大小写的语言,你应该关心大小写。您的person
对象包含position
但不包含Position
,这就是它无效的原因。只需在第二个for循环中将Position
更改为position
。
你的第二个循环应该像下面的循环一样。
for (i = lift.getPosition; i <= person.position; i++) {
console.log(i);
}