Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(args) {
- const students = new Map();
- const average = (a, b) => {
- let aSum = 0;
- for (let i = 0; i < a[1].length; i++) {
- aSum += a[1][i];
- }
- let bSum = 0;
- for (let i = 0; i < b[1].length; i++) {
- bSum += b[1][i];
- }
- const aAverage = aSum / a[1].length;
- const bAverage = bSum / b[1].length;
- return aAverage - bAverage;
- };
- args.forEach((element) => {
- const tokens = element.split(' ');
- const name = tokens[0];
- const grades = tokens.splice(1, tokens.length).map(Number);
- if (!students.has(name)) {
- students.set(name, []);
- students.set(name, students.get(name).concat(grades));
- } else {
- students.set(name, students.get(name).concat(grades));
- }
- });
- const sortByAverage = Array.from(students).sort((a, b) => average(a, b));
- sortByAverage.forEach((element) => {
- const [name, grades] = element;
- console.log(`${name}: ${grades.join(', ')}`);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement