Advertisement
maymunskoa

Average Grades (Archive Objects & Classes)

Apr 1st, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.   class Student {
  3.     constructor(name, grades) {
  4.       this.name = name;
  5.       this.grades = grades;
  6.       this.average = 0;
  7.     }
  8.  
  9.     getAverage() {
  10.       this.average = this.grades.reduce((a, b) => a + b) / this.grades.length;
  11.     }
  12.   }
  13.  
  14.   let count = Number(input.shift());
  15.  
  16.   let data = input.slice(0).filter(x => x !== "");
  17.   let list = [];
  18.   for (const line of data) {
  19.     let grades = line.split(" ");
  20.     let name = grades.shift();
  21.     let student = new Student(name, grades.map(Number));
  22.     student.getAverage();
  23.     list.push(student);
  24.   }
  25.  
  26.   list
  27.     .filter(x => x.average >= 5)
  28.     .sort((a, b) => {
  29.       if (a.name.localeCompare(b.name) === 0) {
  30.         return b.average - a.average;
  31.       }
  32.       return a.name.localeCompare(b.name);
  33.     })
  34.     .forEach(student => {
  35.       console.log(`${student.name} -> ${student.average.toFixed(2)}`);
  36.     });
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement