问题描述
我正在尝试改变我的电路板,但我声明的功能不起作用。让我解释一下:
- 我有一个 18x24 的板子,如果它充满元素,我正试图清除一行(我取消移动它以便顶部的另一行落到它的位置)
- 为此,我声明了一个应该返回新板的函数
- 但是,由于某种原因,该函数没有返回棋盘,而是返回一个布尔值,这是出乎意料的。
这是初始板(不应该考虑边框-用'#'-显示):
const myBoard = [
Array(18).fill('#'),['#','','#'],Array(18).fill('#')
]
功能如下:
function checkFilledRow(board) {
let newBoard = []
for (var row=1;row<board.length - 1;row++) {
const currentRow = board[row]
let newRow = []
for (var i=1;i<currentRow.length - 1;i++) {
if (currentRow[i] === '') {
console.log(true)
newRow = currentRow
newBoard.push(newRow)
break
} else if (i === currentRow.length - 2) {
newRow = ['#','#']
newBoard.unshift(newRow)
console.log(false)
}
}
}
return newBoard
}
有什么问题吗?你会推荐什么?我对条件几乎没有做任何事情,但我看不到我的代码中返回布尔值的一点。
解决方法
问题是因为我忘记添加顶部和底部边框,所以我会每圈减少行数。我就是这样解决的:
newBoard.unshift(Array(18).fill('#'))
newBoard.push(Array(18).fill('#'))
return newBoard