You can quite easily sort arrays on multiple attributes using a simple Array.sort().

Consider this array -

const students = [
  { name: "Rama", grade: 10, class: 5 },
  { name: "Kris", grade: 7, class: 1 },
  { name: "Jan", grade: 8, class: 5 },
  { name: "Kris", grade: 5, class: 7 }
];

Sorting based on grade is easy.

const sorted = students.sort((a, b) => a.class - b.class);
console.log("sorted: ", sorted);

/* output
[
  { name: 'Kris', grade: 7, class: 1 },
  { name: 'Rama', grade: 10, class: 5 },
  { name: 'Jan', grade: 8, class: 5 },
  { name: 'Kris', grade: 5, class: 7 }
]
*/

If we add a further or condition in the sort criteria, Javascript can sort on both attributes.

const sorted = students.sort((a, b) => a.class - b.class || a.grade - b.grade);
console.log("sorted: ", sorted);

/* output
[
  { name: 'Kris', grade: 7, class: 1 },
  { name: 'Jan', grade: 8, class: 5 },
  { name: 'Rama', grade: 10, class: 5 },
  { name: 'Kris', grade: 5, class: 7 }
]
*/

The Array.sort() eliminates complex loops, is readable, and gets the work done.