Advertisement
pacho_the_python

Untitled

Mar 11th, 2023
650
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function schoolRegister(data) {
  2.     class Student {
  3.         constructor(name, score) {
  4.             this.name = name
  5.             this.score = score
  6.         }
  7.     }
  8.     function getStudentData(someArr) {
  9.         let statsArr = []
  10.         for (const element of someArr) {
  11.             let currentElement = element.split(': ')[1]
  12.             statsArr.push(currentElement)
  13.         }
  14.         return statsArr
  15.     }
  16.  
  17.     let students = {}
  18.     for (const line of data) {
  19.         let currentData = line.split(', ')
  20.         let [name, grade, score] = getStudentData(currentData)
  21.         let currentGrade = Number(grade) + 1
  22.  
  23.         if (Number(score) >= 3) {
  24.             let currentStudent = new Student(name, score)
  25.             if(!students.hasOwnProperty(currentGrade)) {
  26.  
  27.                 students[currentGrade] = [currentStudent]
  28.             } else {
  29.                 students[currentGrade].push(currentStudent)
  30.             }
  31.         }
  32.     }
  33.  
  34.  
  35.  
  36.     for (const studentsKey in students) {
  37.         console.log(`${studentsKey} Grade`)
  38.         let names = []
  39.         let sumGrades = 0
  40.         for (let i = 0; i <students[studentsKey].length; i++) {
  41.             names.push(students[studentsKey][i].name)
  42.             sumGrades += Number(students[studentsKey][i].score)
  43.         }
  44.         let averageGrade = sumGrades / students[studentsKey].length
  45.         console.log(`List of students: ${names.join(', ')}`)
  46.         console.log(`Average annual score from last year: ${averageGrade.toFixed(2)}`)
  47.         console.log()
  48.     }
  49. }
  50.  
  51. schoolRegister([
  52.     "Student name: Mark, Grade: 8, Graduated with an average score: 4.75",
  53.     "Student name: Ethan, Grade: 9, Graduated with an average score: 5.66",
  54.     "Student name: George, Grade: 8, Graduated with an average score: 2.83",
  55.     "Student name: Steven, Grade: 10, Graduated with an average score: 4.20",
  56.     "Student name: Joey, Grade: 9, Graduated with an average score: 4.90",
  57.     "Student name: Angus, Grade: 11, Graduated with an average score: 2.90",
  58.     "Student name: Bob, Grade: 11, Graduated with an average score: 5.15",
  59.     "Student name: Daryl, Grade: 8, Graduated with an average score: 5.95",
  60.     "Student name: Bill, Grade: 9, Graduated with an average score: 6.00",
  61.     "Student name: Philip, Grade: 10, Graduated with an average score: 5.05",
  62.     "Student name: Peter, Grade: 11, Graduated with an average score: 4.88",
  63.     "Student name: Gavin, Grade: 10, Graduated with an average score: 4.00"
  64. ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement