fork(1) download
  1. const getLeaderBoard = (students) => {
  2. // do you magic
  3. const leaderboard = students.map(student => {
  4. const totalGrade = Object.values(student.grades).reduce((sum, grade) => sum + grade, 0);
  5. return {...student, totalGrade};
  6. });
  7.  
  8. leaderboard.sort((a,b) => b.totalGrade - a.totalGrade);
  9. return leaderboard;
  10. }
  11.  
  12. const students = [
  13. {
  14. name: '3bkreem',
  15. class: '3rd',
  16. grades: {
  17. math: 25,
  18. physics: 25,
  19. programming: 25,
  20. english: 25
  21. }
  22. },
  23.  
  24. {
  25. name: 'Samer',
  26. class: '3rd',
  27. grades: {
  28. math: 10,
  29. physics: 15,
  30. programming: 12,
  31. english: 19
  32. }
  33. },
  34.  
  35. {
  36. name: 'Ahmed',
  37. class: '3rd',
  38. grades: {
  39. math: 20,
  40. physics: 20,
  41. programming: 20,
  42. english: 20
  43. }
  44. },
  45.  
  46. {
  47. name: 'Ali',
  48. class: '3rd',
  49. grades: {
  50. math: 20,
  51. physics: 25,
  52. programming: 19,
  53. english: 22
  54. }
  55. },
  56.  
  57. {
  58. name: 'Elgoker',
  59. class: '3rd',
  60. grades: {
  61. math: 23,
  62. physics: 25,
  63. programming: 19,
  64. english: 22
  65. }
  66. }
  67. ]
  68.  
  69. console.log(getLeaderBoard(students));
Success #stdin #stdout 0.41s 38960KB
stdin
Standard input is empty
stdout
Standard output is empty