尝试更新板但返回 true

问题描述

我正在尝试改变我的电路板,但我声明的功能不起作用。让我解释一下:

  • 我有一个 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