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

157
Vistas
Solución alternativa de corrección de error NaN de cadena numérica

Tengo una variable miembro total explícitamente de number de tipo (en una aplicación Angular strict ) que se inicializa en el constructor pero luego se muestra como any tipo en el método drawSlices() , lo que da como resultado que mi etiqueta de información sobre herramientas muestre NaN .

 export class SomeComponent implements OnInit { total: number; dataSource: Item[]; constructor(private dataService: DataService) { this.dataSource = this.dataService.getData(); this.total = this.dataSource.reduce((sum, element) => sum += element.abs, 0); } drawSlices() { const mousemove = function (event, d) { const percent = (Math.abs(d.data.abs / this.total) * 100).toFixed(2) + "%"; tooltip .style("left", (event.pageX) + "px") .style("top", (event.pageY - 80) + "px") .style("display", "block") .style("opacity", 1) .style("height", "40px"); tooltip.html(`name: ${d.data.name}<br>value: ${d.data.value}<br>share: ${percent}`); } }

He intentado forzar el tipo y soluciones similares, sin éxito...

 let t: number = this.total; const percent = (Math.abs(d.data.abs / t) * 100).toFixed(2) + "%";

¿Cómo soluciono esto para obtener un número seguido de % ?

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

0

El problema se debe al alcance de 'esto' en la función mousemove. Convierta la función normal en una función ES6 (flecha) y debería estar listo para comenzar. Obtendrá el alcance del componente y devolverá la variable 'total' correcta.

 const mousemove = (event, d) => { const percent = (Math.abs(d.data.abs / this.total) * 100).toFixed(2) + "%"; ... }

Ponga un punto de depuración para la línea que está usando this.total y vea el valor que se le asignó.

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