foor循环无法正常工作

时间:2015-07-21 03:12:01

标签: javascript for-loop

这是我的升降机程序:

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!");

关于提升升力的循环不起作用。抬起但不抬起。怎么了?

3 个答案:

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