使用javascript使用for循环声明变量

时间:2012-09-05 05:21:27

标签: javascript variables object for-loop assignment-operator

我尝试使用for循环声明变量,然后测试 cols rols 是否相同。如果是,它将运行递归函数。但是,我在javascript中做的很麻烦。有人可以帮忙吗?

现在,在比较==col.1时,它会显示意外变量col.2。我还在col+j循环中尝试了for,但它是invalid left-hand side assignment

for (var i = 0; i < 2; i++) {
  var col = {};
  col.i = Math.floor(Math.random() * cols);
  col.i = Math.floor(Math.random() * rows);
}

if (col.1 == col.2 && row.1 == row.2) {
  return this.getRandomBlock();
}

2 个答案:

答案 0 :(得分:6)

  1. 您应声明colrow,仅声明col
  2. 您应该在循环之外声明colrow,现在每次循环体执行时都会声明。
  3. 您分配给col.i两次。
  4. 当您撰写col.i时,它等于col['i'],因此您应该使用括号。
  5. 您不需要对象({}),请使用数组([])。
  6. 你不能写col.1它不合法,点后的数字不合法,使用col[1]
  7. 您有01,而不是12
  8. var col = [];
    var row = [];
    
    for (var i = 0; i < 2; i++) {
      col[i] = Math.floor(Math.random() * cols);
      row[i] = Math.floor(Math.random() * rows);
    }
    
    if (col[0] == col[1] && row[0] == row[1]) {
      return this.getRandomBlock();
    }
    

答案 1 :(得分:0)

col 变量已在for循环内声明,这意味着变量在每次迭代时都会实例化。因此,在for循环结束时, col 变量只有一个属性 1(col.1)

在循环之后,您尝试访问 col ,这不是 col 对象的属性。此外,如果您尝试使用for循环迭代变量(i或j)访问col对象,则会出现同样的问题,因为迭代后 i或j 的值 2 < / em>的

尝试下面它会像专业人士一样工作。

var col = {};
var row = {};
for (var i = 0; i < 2; i++) {
  col.i = Math.floor(Math.random() * cols);
  row.i = Math.floor(Math.random() * rows);
}
if (col.0 == col.1 && row.0 == row.1) {
  return this.getRandomBlock();
}