使用 javascript 使用 for 循环声明变量
Posted
技术标签:
【中文标题】使用 javascript 使用 for 循环声明变量【英文标题】:declaring variables using for loop using javascript 【发布时间】:2012-08-29 18:53:59 【问题描述】:我正在尝试使用 for
循环声明变量,然后测试 cols 和 rols 是否相同。如果是,它将运行递归函数。但是,我在使用 javascript 时遇到了麻烦。有人可以帮忙吗?
现在,在比较 col.1
和 col.2
时,它会显示意外变量 ==
。我还在for
循环中尝试了col+j
,但它是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();
【问题讨论】:
【参考方案1】:col 变量已在for
循环中声明,这意味着每次迭代都会实例化该变量。因此,在for
循环结束时,col 变量只有一个属性1 (col.1)。
在循环之后,您尝试访问不是 col 对象的属性的 col.2。此外,如果您尝试使用 for
循环迭代变量(i 或 j)访问 col 对象,则会出现相同的问题,因为迭代后 i 或 j 的值为 2
试试下面的,它会像专业人士一样工作。
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();
【讨论】:
【参考方案2】:-
你应该声明
col
和row
,你只声明col
。
您应该在循环外声明col
和row
,现在它在每次循环体执行时声明。
您分配给col.i
两次。
当你写col.i
时,它是col['i']
的后续,所以你应该使用括号来代替。
您不需要对象 (
),使用数组 ([]
)。
不能写col.1
不合法,点后面的数字不合法,用col[1]
。
你有0
和1
,而不是1
和2
。
.
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();
【讨论】:
伟大的斯佩兰斯基。我只是写下同样的内容。以上是关于使用 javascript 使用 for 循环声明变量的主要内容,如果未能解决你的问题,请参考以下文章
就声明而言,Javascript for of 循环中的 let 和 const 之间没有区别吗?
JavaScript循环 while/do while/for的使用