Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Calcular porcentaje completado

Tengo una variedad de diferentes estados de progreso y el estado actual. Quiero poder mostrar el porcentaje completado. Hasta ahora tengo esto:

 getCompletedPercentage(): Status | undefined | number { const index = this.statuses.findIndex(status => status.id === this.currentStatus?.id) const percentage = 100 * (index / this.statuses.length) return percentage },

this.statuses es una matriz de los diferentes estados posibles (todos ellos también tienen id's a partir de 1). this.currentStatus es el estado actual, por supuesto :)

Entonces, digamos que la matriz de estados tiene 6 estados diferentes y el estado actual es 3, quiero poder mostrar el 50% completado. Con el cálculo anterior, no obtengo el 100% cuando el estado actual es el último estado. Comienza en 0 en el primero y luego aumenta, pero todavía es solo 85 cuando estoy en el último. Probablemente sea algo fácil que me estoy perdiendo, pero no puedo resolverlo :)

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Los índices de matriz están basados en cero. Entonces, el valor más alto para el index es 5 (para una matriz de 6 elementos). Modifica tu código así:

 getCompletedPercentage(): Status | undefined | number { const index = this.statuses.findIndex(status => status.id === this.currentStatus?.id) const percentage = 100 * index / (this.statuses.length - 1) return percentage }

Una advertencia que debe tener en cuenta es que esto genera problemas si la longitud de la matriz es uno o menos, obtendrá resultados inconsistentes. Entonces podría intentar: const percentage = 100 * index / Math.max(this.statuses.length - 1, 1)

about 4 years ago · Juan Pablo Isaza Report

0

Puede lograr el requisito con esta lógica simple. En lugar de index , puede usar el status ID ya que comienza desde 1 .

 // Input statuses array let statuses = [{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}, {id: 6}]; // current status obect const currentStatus = {id: 3}; // filtered object by using array.find() method to get the current status id. const filteredObjId = statuses.find(status => status.id === currentStatus.id).id; // Calculating the percentage const percentage = 100 * (filteredObjId / statuses.length) // Result console.log(percentage);

Acabo de agregar el fragmento de código JavaScript solo para mostrar la demostración. Puede usar la misma lógica en su código mecanografiado.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!