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

198
Views
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 answers
Answer question

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