fork download
  1. const getLeaderBoard = (students) => {
  2. const leaderboard = students.map((st) => ({
  3. ...st,
  4. totalGrade: Object.values(st.grades).reduce((sum, grade) => sum + grade),
  5. }));
  6.  
  7. return leaderboard
  8. .filter((st) => st.totalGrade >= 85)
  9. .sort((a, b) => b.totalGrade - a.totalGrade);
  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));
  70. console.log("#".repeat(50));
  71. console.log(students);
  72.  
Success #stdin #stdout 0.13s 31316KB
stdin
Standard input is empty
stdout
[ { name: '3bkreem',
    class: '3rd',
    grades: { math: 25, physics: 25, programming: 25, english: 25 },
    totalGrade: 100 },
  { name: 'Elgoker',
    class: '3rd',
    grades: { math: 23, physics: 25, programming: 19, english: 22 },
    totalGrade: 89 },
  { name: 'Ali',
    class: '3rd',
    grades: { math: 20, physics: 25, programming: 19, english: 22 },
    totalGrade: 86 } ]
##################################################
[ { name: '3bkreem',
    class: '3rd',
    grades: { math: 25, physics: 25, programming: 25, english: 25 } },
  { name: 'Samer',
    class: '3rd',
    grades: { math: 10, physics: 15, programming: 12, english: 19 } },
  { name: 'Ahmed',
    class: '3rd',
    grades: { math: 20, physics: 20, programming: 20, english: 20 } },
  { name: 'Ali',
    class: '3rd',
    grades: { math: 20, physics: 25, programming: 19, english: 22 } },
  { name: 'Elgoker',
    class: '3rd',
    grades: { math: 23, physics: 25, programming: 19, english: 22 } } ]