我试图返回一个“矩阵”或二维数组,其中布尔值将变成1-4的数字,这取决于多少“真值“就在它旁边。我之前尝试了一种不同的方法,用以下代码表示。迭代二维布尔数组并根据真/假返回一个递增值
问题:
当矩阵= [[真,假假],[FALSE,TRUE,FALSE],[FALSE,FALSE,FALSE]]
输出应是[[1,2,1],[2,1,1],[1,1,1]]
我的代码:
function minesweeper(matrix) {
for(var i =0; i < matrix.length; i++){
for(var j = 0; j < matrix.length; j++){
if(matrix[i] && matrix[i][j] == true){
matrix[i][j] = 2;
}else {
matrix[i][j] = 1;
}
}
}
return matrix;
}
我的错误/结果:
输入矩阵:[[TRUE,FALSE FALSE],[FALSE,TRUE,FALSE],[FALSE,FALSE,FALSE] ]
输出:[[2,1,1],[1,2,1],[1,1,1]]
预期输出:[[1,2,1],[2 ,1,1],[1,1,1]]
输入矩阵:[[FALSE,FALSE,FALSE],[FALSE,FALSE,FALSE]]
输出:[[1,1,1],[1,1,1]]
预期输出:[[0,0,0],[0,0,0]]
输入矩阵:[[true,false,false,true],[false,false,true,false],[true ,TRUE,FALSE,TRUE]]
输出:[[2,1,1,2],[1,1,2,1],[2,2,1,2]]
预期输出:[[0,2,2,1],[3,4,3,3],[1,2,3,1]]
有你有一个具体的问题?你能比“我的代码有什么问题吗?”更具体吗? – Necoras
@Necoras我只是想弄清楚如何将布尔值转换为数字,并增加他们妥善基于真/假。我之前的代码是没有的 - 几乎接近我需要的地方。 –
布尔值已经是数字:0 - 假,1 - 真。至于搞清楚如何正确地附近的真/假值映射到1-4,我怀疑这是你的作业点,所以我会离开那里搞清楚逻辑给你。但是,我会指出你正在修改初始的'矩阵'并返回它,而不是将你的新(1-4)值存储在一个新的矩阵变量中。这永远不会给你正确的值,因为当你试图计算第二个数值时,你已经改变了初始矩阵与起始条件不同。 – Necoras