Sudoku

function isValid(board, row, col, num) {
  num = String(num);
  for (let i = 0; i < board.length; i++) {
    if (board[i][col] === num) {
      return false;
    }
    if (board[row][i] === num) {
      return false;
    }
    let rowSection = 3 * Math.floor(row / 3);
    let colSection = 3 * Math.floor(col / 3);
    if (board[rowSection + Math.floor(i / 3)][colSection + (i % 3)] === num) {
      return false;
    }
  }
  return true;
}

function solve(board) {
  for (let i = 0; i < board.length; i++) {
    for (let j = 0; j < board[0].length; j++) {
      if (board[i][j] === ".") {
        for (let num = 1; num <= 9; num++) {
          if (isValid(board, i, j, num)) {
            board[i][j] = String(num);
            if (solve(board)) {
              return true;
            } else {
              board[i][j] = ".";
            }
          }
        }
        return false;
      }
    }
  }
  return true;
}

var solveSudoku = function (board) {
  solve(board);
};