javascript - 如何让二维数组动态拆分成行

标签 javascript arrays

我正在用 javascript 为学校制作一个井字游戏,但我处于停滞状态。按照我的设置方式,我的游戏不会像 tictactoe 游戏那样显示。有没有办法将二维数组拆分为 3 行 3 列?

function TicTacToe() {
	this.board = [[0, 0, 0],
		[0, 0, 0],
		[0, 0, 0]
	];
	this.showhtml = toHTML;
}

function toHTML() {
	var gametable = document.getElementById("tictable");
	for (var i = 0; i < this.board.length; i++) {
		for (var j = 0; j < this.board[i].length; j++) {
			gametable.innerHTML += ("<td>" + this.board[i][j] + "</td>");
		}
	}
}

tic = new TicTacToe();
tic.showhtml();
<table id="tictable">

最佳答案

您忘记添加表格行 (<tr>)。另外请注意,您不必在每次迭代时都设置 innerHTML。将标签收集到屏幕上,最后设置 innerHTML。

function TicTacToe() {
  this.board = [
    [0, 0, 0],
    [0, 0, 0],
    [0, 0, 0]
  ];
  this.showhtml = toHTML;
}

function toHTML() {
  var gametable = document.getElementById("tictable");
  var htmlStr = '';

  for (var i = 0; i < this.board.length; i++) {
    
    htmlStr += '<tr>'; // row start
    
    for (var j = 0; j < this.board[i].length; j++) {
      htmlStr += ("<td>" + this.board[i][j] + "</td>");
    }
    
    htmlStr += '</tr>'; // row end
  }

  gametable.innerHTML = htmlStr;
}

tic = new TicTacToe();
tic.showhtml();
<table id="tictable">

关于javascript - 如何让二维数组动态拆分成行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40710080/

相关文章:

javascript - Internet Explorer (IE) 中的脚本挂起并且对空缓存不负责任(在缓存中工作正常)

javascript - angular-ui ui-calendar 不更新事件源对象/ng-model 的更改

javascript - 如何将属于父 div 兄弟的同一类的输入元素分组?

在 C 中创建一个具有递增十进制值的数组

javascript - 有没有办法在处理错误时像嵌套 promise 一样链接 promise ?

javascript - Firebase 用户验证电子邮件操作 URL 到自定义 URL

javascript - javascript中根据对象键获取值

字符数组打印输出

python - 在 numpy 的二维数组中的特定位置插入一列?

javascript - jqPlot 的 JSON