相反,我有一个函数可以为你提供输入坐标的索引。
function generateBoard(rows, cols, initialValue) {
let arr = [];
for(var i = 0; i < rows;i++){
arr.push(new Array(cols).fill(initialValue))
}
return arr;
}
如果给出:
const board = generateBoard(3,3," ");
它应该生成一个数组,[&#34;&#34;,&#34;&#34;,&#34;&#34;],[&#34;&#34;, &#34;&#34;,&#34;&#34;],[&#34;&#34;,&#34;&#34;,&#34;&#34;],示例坐标2,1应该打印出来7。
我们怎么写:
function indexToRowCol(board, i){}
如果indexToRowCol(board,8)的样本输入应该给出rows = x和cols = x的坐标?我不确定如何仅通过index参数计算行和列的值。
答案 0 :(得分:1)
对于行号[i]除以板[0] .length,因为那是你必须在每一行中分配的元素数量并占据该值的下限,对于列,你必须找到最后一行中的剩余元素,所以< / p>
row = parseInt(i/board[0].length)
和column = i - row*board[0].length -1
function generateBoard(rows, cols, initialValue) {
let arr = [];
for(var i = 0; i < rows;i++){
arr.push(new Array(cols).fill(initialValue))
}
return arr;
}
const board = generateBoard(3,3," ");
function indexToRowCol(board, i){
var row = parseInt(i/board[0].length);
var column = i - row*board[0].length - 1;
console.log(row);
console.log(column);
}
indexToRowCol(board, 8)
答案 1 :(得分:1)
function indexToRowCol(board, i){
var row = parseInt(i/board[0].length);
var col = i%board[0].length -1;
return board[row][col];
}
答案 2 :(得分:0)
这实际上对我有用。
function indexToRowCol(board, i){
var row = Math.floor((i/board.length));
var col = (i - (row*(board.length)));
return [row,col];
}
我得到了其他一些反应的负整数,但这似乎阻止了这一点。