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

219
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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