【发布时间】:2013-06-24 08:23:47
【问题描述】:
我正在尝试创建一个简单的记忆匹配游戏,但我无法从我的 cardValues 数组中为每个表格单元格分配一个数字。我的 giveCellValue 函数应该生成一个随机数,然后从数组中选择该数字并将其提供给一个表格单元格,但我对这个有点过头了,无法完成这项任务。
var countCells;
var cardValues = [];
var checker = true;
var createTable = function (col, row) {
$('table').empty();
for (i = 1; i <= col; i++) {
$('table').append($('<tr>'));
}
for (j = 1; j <= row; j++) {
$('tr').append($('<td>'));
}
countCells = row * col;
};
createTable(3, 6);
for (i = 1; i <= countCells / 2; i++) {
cardValues.push(i);
if (i === countCells / 2 && checker) {
checker = false;
i = 0;
}
}
var giveCellValue = function () {
var random = Math.ceil(Math.random() * cardValues.length) - 1;
for (i = 0; i <= cardValues.length; i++) {
$('td').append(cardValues[random]);
cardValues.splice(random, 1);
}
};
giveCellValue();
console.log(cardValues);
【问题讨论】:
-
小心,
i和j是全球性的,麻烦! -
@elclanrs 我想如果你只在本地函数中定义它们?
-
是的,但它们没有定义,你缺少
var关键字,所以它们成为隐式全局变量。由于所有循环共享相同的变量,因此我看到了由于此问题而导致的意外错误。 -
只是提到你的行循环是添加列和列循环添加行
标签: javascript jquery arrays iteration splice