【发布时间】:2021-09-20 23:02:57
【问题描述】:
新手!我正在通过 2D 数组生成棋盘并尝试替换由“白皇后”和“黑皇后”坐标指定的数组值,现在正致力于让白皇后工作。
下面我想将 0 替换为 whiteQueen[0, 5] 所在的 1,但循环将整个列替换为 1 而不仅仅是指定的 j。我想知道我哪里出错了,是否有更简单的方法来解决这个问题,不涉及循环。
我的代码:
function generatedBoard (whiteQueen, blackQueen) {
let mainArr = new Array(8).fill([0, 0, 0, 0, 0, 0, 0, 0])
for (i = 0; i < mainArr.length; i++) {
for (j = 0; j < mainArr[i].length; j++) {
if (i === whiteQueen[0] && j === whiteQueen[1]) {
mainArr[i].splice(j, 1, "1")
}
}
}
return mainArr
}
let whiteQueen = [0, 5];
let blackQueen = [5, 0];
console.log(generatedBoard(whiteQueen, blackQueen));
Result:
[ [ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ],
[ 0, 0, 0, 0, 0, '1', 0, 0 ] ]
【问题讨论】:
标签: javascript loops multidimensional-array