我有 2d Matrix(镜像),它按我的预期工作。但是,我不知道如何正确编写 JavaScript 代码,因此它不会创建额外的 div 元素。在矩阵中,我有 (x,y) 索引,因此它改变了正确的位置。然而,当需要在屏幕上渲染它时,它会附加(添加) new 。
createBoard() {
let specialSquares = {
'3xW': [0, 7, 105],
'3xL': [20, 76, 80],
'2xW': [16, 32, 48, 64],
'2xL': [3, 36, 45, 52, 92, 96, 108],
'CT': [112]
};
this.board = [...new Array(15)].map(x => new Array(15));
let boardSide = 14;
for (let i = 0; i <= boardSide / 2; i++) {
for (let j = 0; j <= boardSide / 2; j++) {
let num = indexOfTile(i, j)
for (let ss in specialSquares) {
let idx = specialSquares[ss].indexOf(num)
if (idx >= 0) {
this.board[i][j] = ss;
break;
}else
this.board[i][j] = "_";
}}}
渲染部分是这样的,基本是一样的:
let specialSquares = {
'3xW': [0, 7, 105],
'3xL': [20, 76, 80],
'2xW': [16, 32, 48, 64],
'2xL': [3, 36, 45, 52, 92, 96, 108],
'CS': [112]
};
let boardSide = 14;
$('.board').remove();
let $board = $('<div class="board"/>').appendTo('body');
for (let i = 0; i <= boardSide / 2; i++) {
for (let j = 0; j <= boardSide / 2; j++) {
let num = indexOfTile(i, j)
for (let ss in specialSquares) {
let idx = specialSquares[ss].indexOf(num)
if (idx >= 0) {
$board.append('<div/>' + ss)
break;
}
else {
$board.append('<div /> ')
}
但每次(idx<0)它都会追加一个新的 div。这不会发生在控制台上的数组中,因为我有确切的位置 (i,j)。
ABOUTYOU
慕容708150
相关分类