I have the below user data.The data was nested on 2 levels and flattening it doesn't work
[
  [
    { class_id: "Grade 1", roll_number: "1", name: "alex" },
    { class_id: "Grade 1", roll_number: "2", name: "bob" },
  ],
  [
    { class_id: "Grade 2", roll_number: "7", name: "peter" },
    { class_id: "Grade 3", roll_number: "6", name: "lia" },
    { class_id: "Grade 2", roll_number: "5", name: "mary" },
    { class_id: "Grade 3", roll_number: "1", name: "violet" },
  ],
]
Requirement is that I have to generate data taking into account of the class_id and generate information as below
[
  {
    class_id: "Grade",
    students: [
      { roll_number: "1", name: "alex" },
      { roll_number: "2", name: "boc" },
    ],
  },
  {
    class_id: "Grade 2",
    students: [
      { roll_number: "7", name: "peter" },
      { roll_number: "5", name: "mary" },
    ],
  },
  {
    class_id: "Grade 3",
    students: [
      { roll_number: "6", name: "lia" },
      { roll_number: "1", name: "violet" },
    ],
  },
]
I have tried using the below piece of code
var response = [];
data.map(item => {
  var students = [];
  for (var i = 0; i < item.length; i++) {
    const stu_obj = {
      name: item[i].name,
      roll_number: item[i].roll_number,
    };
    students.push(stu_obj);
    if (i == 0) {
      const class_obj = {
        class_id: item[0].class_id,
        studentsList: students,
      };
      response.push(class_obj);
      continue;
    }
  }
});
But it doesn't work for cases where the item in array has multiple class_ids. What should I do?
 
     
     
    