我試圖返回一個「矩陣」或二維數組,其中布爾值將變成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