var solveSudoku = function (board) { for (let row = 0; row < 9; row++) { for (let col = 0; col < 9; col++) { if (board[row][col] !== '.') continue for (let num = 1; num < 10; num++) { const isSet = cheackSet(row, col, board, num + '') if (!isSet) continue board[row][col] = num + '' // 判断是否能继续进行 if (solveSudoku(board)) return true // 回退 board[row][col] = '.' } // 当前格子没有不符合的,则回退 return false } } return true};// 检查是否满足题意function cheackSet(row, col, board, num) { for (let i = 0; i < 9; i++) { if (board[i][col] === num || board[row][i] === num) { return false } } return checkIn33(row, col, board, num)}function checkIn33(row, col, board, num) { const x = Math.floor(row / 3) * 3 const y = Math.floor(col / 3) * 3 for (let i = x; i < x + 3; i++) { for (let j = y; j < y + 3; j++) { if (board[i][j] === num) { return false } } } return true}