我试图通过引用传递一个变量,但它没有像它应该的那样工作(或者我希望它会这样)。
boardCopy
被调用后仍然是空callMeMaybe
的,我不知道为什么。如果我已经在第一个函数中复制了板boardCopy = board.slice(0)
并且在第二个函数中不这样做它正在工作,但这不是一个选项,因为真正的板会更大并且callMeAnytime
将是递归函数并且更复杂.
callMeAnytime(3, [], [1, 0, 1, 1]);
function callMeAnytime(index, moves, board) {
for (var i = index; i >= 0; i--) {
var boardCopy = [];
callMeMaybe(i, board, boardCopy)
console.log(board); // [1, 1, 1, 1]
console.log(boardCopy); // []
}
}
function callMeMaybe(i, board, boardCopy) {
if (board[i] == 1) {
boardCopy = board.slice(0);
boardCopy[i] = 0;
console.log(board); // [1, 1, 1, 1]
console.log(boardCopy); // [1, 1, 1, 0]
}
}