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

205
Vistas
cómo calcular el porcentaje total, número total con sujeto usando reduce

Tengo una función subjectTotal que devuelve el total de un sujeto CQ y MCQ, estoy tratando de calcular el porcentaje dentro de la función subjectTotal, ya tengo una función de porcentaje que devuelve el porcentaje y el punto de calificación.

Función SubjectTotal:

 const value = { english_1st_CQ: 5, english_2nd_CQ: 10, math_1st_CQ: 15, math_1st_MCQ: 20, math_2nd_CQ: 25, math_2nd_MCQ: 30, }; const subjectTotal = Object.entries(value).reduce((result, [key, value]) => { const [subjectName, subjectPosition, suffix] = key.split('_') const fullSubjectName = `${subjectName}_${subjectPosition}` if(!result[fullSubjectName]) { result[fullSubjectName] = 0; } result[fullSubjectName] += value return result }, {}) console.log(subjectTotal)

Calcule la función de porcentaje, también estoy calculando el punto de calificación dentro de la función

 const subjectTotal = { english_1st: 5, english_2nd: 10, math_1st: 35, math_2nd: 55 } const calculatePercentage = (subTotal) => { if (subTotal === 0) return { percentage: 0, GP: 0 }; // console.log(subTotal); const percentage = (subTotal / 100) * 100 - 4; let GP; if (percentage >= 80) GP = 5; if (percentage >= 70 && percentage <= 79) GP = 4; if (percentage >= 60 && percentage <= 69) GP = 3.5; if (percentage >= 50 && percentage <= 59) GP = 3; if (percentage >= 40 && percentage <= 49) GP = 2; if (percentage >= 33 && percentage <= 39) GP = 1; if (percentage < 33) GP = 0; return { percentage, GP }; }; const math_percentage = calculatePercentage(subjectTotal.math_1st + subjectTotal.math_2nd); const english_percentage= calculatePercentage(subjectTotal.english_2nd + subjectTotal.english_1st); console.log(math_percentage, english_percentage)

No quiero llamar a la función una y otra vez, de esta manera, porcentaje_matemático , porcentaje_inglés . así que estoy tratando de llamar al porcentaje de cálculo dentro del total del sujeto y el total del sujeto devolverá el total del sujeto también el porcentaje

No tengo un ejemplo, solo quiero calcular el porcentaje dentro del subtotal.

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

0

Esto es lo que necesita

 const value = { english_1st_CQ: 5, english_2nd_CQ: 10, math_1st_CQ: 15, math_1st_MCQ: 20, math_2nd_CQ: 25, math_2nd_MCQ: 30, }; const calculatePercentage = (subTotal) => { if (subTotal === 0) return { percentage: 0, GP: 0 }; const percentage = (subTotal / 100) * 100 - 4; let GP; if (percentage >= 80) GP = 5; if (percentage >= 70 && percentage <= 79) GP = 4; if (percentage >= 60 && percentage <= 69) GP = 3.5; if (percentage >= 50 && percentage <= 59) GP = 3; if (percentage >= 40 && percentage <= 49) GP = 2; if (percentage >= 33 && percentage <= 39) GP = 1; if (percentage < 33) GP = 0; return { percentage, GP }; }; const subjectTotal = Object.entries(value).reduce((result, [key, value], currentIndex, array) => { const [subjectName, subjectPosition, suffix] = key.split('_') const fullSubjectName = `${subjectName}_${subjectPosition}` if(!result[fullSubjectName]) { result[fullSubjectName] = 0; } result[fullSubjectName] += value; if (currentIndex + 1 === array.length){ result.math_percentage = calculatePercentage(result.math_1st + result.math_2nd); result.english_percentage= calculatePercentage(result.english_2nd + result.english_1st); } return result }, {}) console.log(subjectTotal);

En el código anterior, uso el porcentaje de calculatePercentage solo en la última iteración de reducir para el último elemento donde todos los elementos de la matriz que ha proporcionado ya se reducen al resultado que desea. Luego adjuntamos al resultado los porcentajes de acuerdo a los valores ya finales calculados que contiene.

Además, como puede ver en la firma reduce((result, [key, value], currentIndex, array) reduce permite como parámetro el índice actual que mostrará a qué iteración se aplica el método de reducción, y también la matriz que se proporcionó como entrada ser reducido

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