javascript 如何访问数组元素的引用(读写数组的元素)

e3bfsja2  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(169)

我试图基本上能够访问一个数组的特定元素,以便读取或更改它(因此引用的想法)。
当然,array[i][j]是解决方案。
但是我基本上是尝试使用每个元素的特定ID来访问这个元素。
让我向你们展示我正在努力实现的目标:我想用chessboard.square("a8")访问chessboard[0][0],并且能够修改或读取它,我的二维数组的每个元素都有一个唯一的id(chess坐标,这里a8代表[0][0]),我会发现用这个ID访问元素比写实际的数组坐标更方便。

square(coordinate) {
        const {row, col} = this.parseSquareToBoard(coordinate)  
        return this.chessboard[row][col]
     }
     /* the function parseSquareToBoard is used to get the coordinates of the array from the string id (for example parseSquareToBoard("a8") returns {col: 0, row: 0} */

     printBoard() {
        this.square('a1') = "R " // this is the line where I obviously get a ReferenceError
        this.chessboard.map(row => {
            row.map(piece => process.stdout.write(piece ? piece : "X "))
            console.log()
        })
     }

所有这些都在类中。我能做些什么来做到这一点呢?如果我的问题需要澄清,请告诉我。
谢谢

guykilcj

guykilcj1#

不需要square方法:

const { row, col } = this.parseSquareToBoard(coordinate);

this.chessboard[row][col] = "R ";

如果你真的想避免使用array[i][j],那么创建一个helper方法:

setSquare(coordinate, piece) {
    const { row, col } = this.parseSquareToBoard(coordinate);

    this.chessboard[row][col] = piece;
}

// ...

printBoard() {
    this.setSquare("a8", "R ");
    // ...
}

相关问题