Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //problem 3 - School Grades
- function arrangeStudents(input) {
- let students = {};
- for (let line of input) {
- let [t1, name, t2, grade, t3, avgScore] = line.split(/: |, /).filter(t => t !== '');
- grade = (+grade + 1).toString();
- if(+avgScore >= 3){
- if(!students.hasOwnProperty(grade)) {
- students[grade] = [];
- students[grade].avgGrade = 0;
- }
- if (!students[grade].includes(name)) {
- students[grade].push(name);
- students[grade].avgGrade += +avgScore
- }
- }
- }
- let result = [];
- let sortedGrades = Object.keys(students).sort((a,b) => +a - +b);
- for (const key of sortedGrades) {
- result.push(key + ' Grade ');
- result.push(`List of students: ${students[key].join(', ')}`);
- let avgToPrint = students[key].avgGrade / students[key].length;
- result.push(`Average annual grade from last year: ${avgToPrint.toFixed(2)}`);
- result.push('');
- }
- return result.join('\n');
- }
- console.log(arrangeStudents(
- ['Student name: Mark, Grade: 8, Graduated with an average score: 4.75',
- 'Student name: Ethan, Grade: 9, Graduated with an average score: 5.66',
- 'Student name: George, Grade: 8, Graduated with an average score: 2.83',
- 'Student name: Steven, Grade: 10, Graduated with an average score: 4.20',
- 'Student name: Joey, Grade: 9, Graduated with an average score: 4.90',
- 'Student name: Angus, Grade: 11, Graduated with an average score: 2.90',
- 'Student name: Bob, Grade: 11, Graduated with an average score: 5.15',
- 'Student name: Daryl, Grade: 8, Graduated with an average score: 5.95',
- 'Student name: Bill, Grade: 9, Graduated with an average score: 6.00',
- 'Student name: Philip, Grade: 10, Graduated with an average score: 5.05',
- 'Student name: Peter, Grade: 11, Graduated with an average score: 4.88',
- 'Student name: Gavin, Grade: 10, Graduated with an average score: 4.00']
- ));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement