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

109
Views
Objeto (nombre, apellido, número de índice, tabla con calificaciones) con un método que calcula el promedio de calificaciones

Así que he estado tratando de resolver esta tarea de la universidad. Tengo una comprensión aproximada de cómo resolver esto, pero solo se me ocurrieron las soluciones que no funcionan o que realmente no corresponden a los requisitos de la tarea.

La tarea se ve así.

Cree un objeto usando Inicializador de objetos, asigne propiedades que lo describan (nombre, apellido, número de índice, tabla con calificaciones). Asigne un método al objeto que calcula el promedio de calificaciones

Esta es la solución que funciona, pero no es exactamente lo que se supone que debe hacerse.

 function Grade (math, science, programming, management){ this.math = math; this.science = science; this.programming = programming; this.management = management; return (math + science + programming + management)/arguments.length; } const student = { name: 'John', surname: 'Smith', index: 'x4sx4sd', grade: Grade(5,4,5,5) } console.log(student);

Este es mi intento que no funciona pero, en mi opinión, está más cerca de la verdad pero sin la parte promedio.

 const student = { name: 'John', surname: 'Smith', index: 'xxxxx', grade: { math: 5, science: 5, language: 5, marketing: 5, management: 5 }, gradeAvg: function(grade){ grade=this.grade; let total = 0; for (let value in object){ total += grade[value] } return total; } } console.log(student);

Entiendo que es una pregunta de nooby, he intentado buscar en Google lo más que he podido pero no pude encontrar nada, cualquier ayuda sería apreciada.

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

0

Cambie su gradeAvg en una función getter que se ejecutará cuando cargue el objeto. Además, para obtener el promedio (que requiere un conteo), puede acceder al conteo usando Object.entries (que convierte el objeto en una matriz) y luego obtener la longitud

 const student = { name: 'John', surname: 'Smith', index: 'xxxxx', grade: { math: 2, science: 5, language: 5, marketing: 1, management: 5 }, get gradeAvg() { let total = 0; for (let value in this.grade) { total += this.grade[value] } return total / Object.entries(this.grade).length; } } console.log(student);

about 4 years ago · Juan Pablo Isaza Report

0

Entonces, antes que nada, debe convertir el objeto de calificación de Objeto a matriz para que pueda sumar todos los elementos. Object.values hace eso, por lo que {a: 1, b: 2} se convertiría en [1, 2] . A continuación, debe obtener el número de calificaciones para poder dividir la suma para obtener el promedio. Lo último que necesita es una suma de la matriz que hemos creado anteriormente, el método de reduce de matriz se usa para reducir la matriz en un valor.

 get GradeAvg() { const gradesArray = Object.values(this.grade); const gradesCount = gradesArray.length; const gradesSum = gradesArray.reduce((sum, current) => { sum += current; return sum; }) return gradesSum / gradesCount; }
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!