Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

155
Visualizações
error de tipo no detectado en la clase a pesar de la configuración del elemento

Así que estoy haciendo un solucionador básico de sudoku de fuerza bruta. Creé una clase que toma una cadena de tablero y uso un constructor para configurar this.board = parámetro de tablero pasado

 export default class SudokuSolver { constructor(board){ this.board = board }

el primer método que se ejecuta es validBoardFormat

 validBoardFormat(){ /* possible input formats: CSV of 81 integers or string of 81 integers 0's replace unknown numbers*/ let cleanedBoard=[]; let uncleanedBoard = this.board.split('') //split by character for (let i = 0; i<uncleanedBoard.length; i++){ if (this.validNum(uncleanedBoard[i])){ //validate with validNum function cleanedBoard.push(parseInt(uncleanedBoard[i])) } } if (cleanedBoard.length === 81){ this.board = cleanedBoard //make sure board matches correct sudoku board length return true } return false }

Digamos, por ejemplo, pasar:

 let boardString = "1024091501202523235" //imagine this is a valid board string const board = new SudokuSolver(boardString) console.log(board.validBoardFormat()) console: true

Esto funciona perfectamente bien por sí solo.

más adelante en la clase defino un método de resolución

 solve(){ if (this.validBoardFormat()){ this.validBoardFormat() this.configureBoardArray() this.solveBoard() } else { console.log('Board error') } }

El problema es cuando paso esto:

 let boardString = "1024091501202523235" //imagine this is a valid board string const board = new SudokuSolver(board) console.log(board.solve())

y lo ejecuto en liveserver, recibo este error:

Uncaught TypeError: this.board.split is not a function en la función validBoardFormat

He estado tratando de solucionar este problema por un tiempo ahora cualquier ayuda sería apreciada

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

No puede hacer const board = new SudokuSolver(board) porque la variable del tablero aún no está definida. Debe hacer const board = new SudokuSolver(boardString) .

about 4 years ago · Santiago Trujillo Relatório

0

Está configurando this.board en una matriz:

 if (cleanedBoard.length === 81){ this.board = cleanedBoard // <= this.board is now an array return true }

Entonces, la próxima vez que llame a validBoardFormat() , terminará intentando invocar la split en la matriz, no en la cadena:

 let uncleanedBoard = this.board.split('') // this.board is now an array, not a string
about 4 years ago · Santiago Trujillo Relatório

0

Ahora me doy cuenta de que en mi método de resolución, estaba haciendo validBoardFormat dentro de la declaración if en sí, lo que altera el valor de this.board de una cadena (entrada original) a una matriz. Después de pasar la instrucción if, ejecuta this.validBoardFormat nuevamente, pero ahora this.board es una matriz, por lo que ya no puede hacer .split().

para solucionar esto, he almacenado el retorno de this.validBoardFormat en una variable y luego uso ese valor para continuar

 solve(){ let validation = this.validBoardFormat() if (validation){ this.configureBoardArray() this.solveBoard() return this.board } else { console.log('Board error') } }

Es extraño lo rápido que puedes encontrar tus propios errores cuando finalmente pides ayuda después de mirarlo durante mucho tiempo de antemano, lmao

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda