gpt4 book ai didi

javascript - 连续将数组添加到二维数组

转载 作者:行者123 更新时间:2023-12-03 05:32:43 24 4
gpt4 key购买 nike

每次我单击网格中的一个单元格时,它都会将该单元格的[行,列]数组记录到一个变量中,bla(黑色)或whi(白色)。但是,下次我单击某个单元格时,它会更改变量。例如,我单击一个单元格,变量wh是[1,2],然后我单击另一个单元格,变量bla是[2,2],之后,我单击第三个单元格,变量wh从[1]更改,2](从原始点击)到[3,2]。 (我为此编了随机数)。我想创建两个二维数组,一个用于变量 bla,另一个用于变量 Whi。使用我的示例,二维数组之一应该是 [[1,2],[3,2]] (对于白色单元格),另一个应该是 [[2,2]] (对于黑色单元格)

测试代码:

var white=true;
function generateGrid( rows, cols ) {
var grid = "<table>";
for ( row = 1; row <= rows; row++ ) {
grid += "<tr>";
for ( col = 1; col <= cols; col++ ) {
grid += "<td></td>";
}
grid += "</tr>";
}
return grid;
}

$( "#tableContainer" ).append( generateGrid( 10, 10) );

$( "td" ).click(function() {
$(this).css('cursor','default');
var index = $( "td" ).index( this );
var row = Math.floor( ( index ) / 10) + 1;
var col = ( index % 10) + 1;
var $td = $(this);
if ($td.data('clicked'))
return;
if (white===true){
var whi=[row,col]; //I want to log the array for whi into a 2D array
console.log("white coord is "+whi);
} else {
var bla=[row,col]; //I want to log this array into another 2D array
console.log("black coord is "+bla);
}

$td.data('clicked', true);

$td.css('background-color', white ? 'white' : 'black');
white = !white;
});
html{
background-color:#7189ea;
}
td {
border: 1px solid;
width: 25px;
height: 25px;
border-radius:100%;
}

table {
border-collapse: collapse;
}
<link type="text/css" rel="stylesheet" href="stylesheet.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<div id="tableContainer"></div>

最佳答案

whibla 初始化为数组并将 [row,col] 推送到它们 - 请参阅下面的演示:

var white = true;

var whi = [];
var bla = [];

function generateGrid(rows, cols) {
var grid = "<table>";
for (row = 1; row <= rows; row++) {
grid += "<tr>";
for (col = 1; col <= cols; col++) {
grid += "<td></td>";
}
grid += "</tr>";
}
return grid;
}

$("#tableContainer").append(generateGrid(10, 10));

$("td").click(function() {
$(this).css('cursor', 'default');
var index = $("td").index(this);
var row = Math.floor((index) / 10) + 1;
var col = (index % 10) + 1;
var $td = $(this);
if ($td.data('clicked'))
return;
if (white === true) {
whi.push([row, col]);
} else {
bla.push([row, col]);
}

$td.data('clicked', true);
$td.css('background-color', white ? 'white' : 'black');
white = !white;
});

$('#getarr').click(function(){
console.log("white arr: ", whi);
console.log("black arr: ", bla);
});
html {
background-color: #7189ea;
}
td {
border: 1px solid;
width: 25px;
height: 25px;
border-radius: 100%;
}
table {
border-collapse: collapse;
}
<link type="text/css" rel="stylesheet" href="stylesheet.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<div id="tableContainer"></div>

<button id="getarr">Get array</button>

关于javascript - 连续将数组添加到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com