Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
¿Cómo implemento un objeto de 'seguimiento' dentro de mi constructor de clase?

Creé una aplicación web Binary Sudoku que utiliza una cadena de funciones recursivas para generar una cuadrícula aleatoria resuelta, en cuyo punto la cuadrícula se reduce, mediante algunas funciones de reducción, a unas pocas fichas iniciales para que los jugadores las vuelvan a ensamblar (resolver) . Por el bien de mi propia curiosidad, estoy tratando de construir un objeto constructor dentro de mi clase de generador principal que hará un seguimiento de cuántas veces se ejecuta cada función recursiva, cada vez que genero un nuevo tablero (no estoy interesado en conservar estos datos más allá de una sola instancia de tablero). También me gustaría registrar el tiempo de ejecución total de esta operación después de que se haya generado el tablero.

Hasta ahora, he intentado implementar este objeto dentro de mi constructor:

 this.stats = { rowGenerator: 0, rowAssembler: 0, colTotalCheck: 0, colUniqueCheck: 0, runtime: 0 };

Dentro de cada una de mis cuatro funciones recursivas, he colocado estos incrementos en la parte superior:

 this.stats.rowGenerator++; this.stats.rowAssembler++; this.stats.colTotalCheck++; this.stats.colUniqueCheck++;

Actualmente, esto devuelve un TypeError para cada referencia a los respectivos valores de 'estadísticas'.

 Uncaught TypeError: Cannot read properties of undefined (reading 'colUniqueCheck')

También coloqué métodos de temporización antes y después de la cadena recursiva para registrar el tiempo de ejecución, pero desafortunadamente la única respuesta de temporización que recibo es '0ms'. Los métodos de temporización se escriben así:

 startTime() { // before recursive chain return performance.now(); }; endTime() { // after recursive chain return performance.now(); }; totalTime() { const end = this.endTime(); const start = this.startTime(); return `Runtime: ${end - start}ms`; };

He buscado problemas similares, pero no puedo encontrar ninguna información útil que sea exclusiva de estos problemas, tal vez el seguimiento de estas pequeñas estadísticas triviales no sea realista dentro de una clase.

Cualquier idea es apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está llamando a this.checkColumnsUnique (que accede a this.stats ) incluso antes de inicializar this.stats :

 this.fillBoard = this.checkColumnsUnique(); this.stats = { rowGenerator: 0, rowAssembler: 0, colTotalCheck: 0, colUniqueCheck: 0, runtime: 0 };

Si invierte el orden de estas dos declaraciones, funcionará.

(Sin embargo, hay otro problema: en checkColumnsUnique llamas a checkColumnsUnique sin this. delante).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda