Advertisement
Danny_Berova

03.SchoolGrades

Oct 9th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //problem 3 - School Grades
  2. function arrangeStudents(input) {
  3.     let students = {};
  4.     for (let line of input) {
  5.         let [t1, name, t2, grade, t3, avgScore] = line.split(/: |, /).filter(t => t !== '');
  6.         grade = (+grade + 1).toString();
  7.  
  8.         if(+avgScore >= 3){
  9.             if(!students.hasOwnProperty(grade)) {
  10.                 students[grade] = [];
  11.                 students[grade].avgGrade = 0;
  12.             }
  13.             if (!students[grade].includes(name)) {
  14.                 students[grade].push(name);
  15.                 students[grade].avgGrade += +avgScore
  16.             }
  17.         }
  18.     }
  19.  
  20.     let result = [];
  21.     let sortedGrades = Object.keys(students).sort((a,b) => +a - +b);
  22.     for (const key of sortedGrades) {
  23.         result.push(key + ' Grade ');
  24.         result.push(`List of students: ${students[key].join(', ')}`);
  25.         let avgToPrint = students[key].avgGrade / students[key].length;
  26.         result.push(`Average annual grade from last year: ${avgToPrint.toFixed(2)}`);
  27.         result.push('');
  28.     }
  29.  
  30.     return result.join('\n');
  31.  
  32. }
  33.  
  34.  
  35. console.log(arrangeStudents(
  36.     ['Student name: Mark, Grade: 8, Graduated with an average score: 4.75',
  37.     'Student name: Ethan, Grade: 9, Graduated with an average score: 5.66',
  38.     'Student name: George, Grade: 8, Graduated with an average score: 2.83',
  39.     'Student name: Steven, Grade: 10, Graduated with an average score: 4.20',
  40.     'Student name: Joey, Grade: 9, Graduated with an average score: 4.90',
  41.     'Student name: Angus, Grade: 11, Graduated with an average score: 2.90',
  42.     'Student name: Bob, Grade: 11, Graduated with an average score: 5.15',
  43.     'Student name: Daryl, Grade: 8, Graduated with an average score: 5.95',
  44.     'Student name: Bill, Grade: 9, Graduated with an average score: 6.00',
  45.     'Student name: Philip, Grade: 10, Graduated with an average score: 5.05',
  46.     'Student name: Peter, Grade: 11, Graduated with an average score: 4.88',
  47.     'Student name: Gavin, Grade: 10, Graduated with an average score: 4.00']
  48. ));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement