I have a json object with data, I need to group these by name, sum the weight by name, and sum the grades. I have been trying for 2 days now. It should look like {name,weightTotal,grade{grade1total:, grade2total, grade2total}}... i looked through about 30 stack qs and tried reducing and foreach groupby and I don't understand any of it, I'm a 3rd year student doing my first internship. Need this to progress on the frontend to display these as a table. These are from rest endpoint btw.
Data
"data": [
    {
      name: "france Naicin",
      avgTotalWeight: 16,
      grade: {
        grade1: 16,
        grade2: 0,
        grade3: 0,
      },
    },
    {
      name: "pacific gigas",
      avgTotalWeight: 16,
      grade: {
        grade1: 16,
        grade2: 0,
        grade3: 0,
      },
    },
    {
      name: "france Naicin",
      avgTotalWeight: 13,
      grade: {
        grade1: 13,
        grade2: 0,
        grade3: 0,
      },
    },
    {
      name: "france Naicin",
      avgTotalWeight: 14,
      grade: {
        grade1: 14,
        grade2: 0,
        grade3: 0,
      },
    },
    {
      name: "france Naicin",
      avgTotalWeight: 15,
      grade: {
        grade1: 15,
        grade2: 0,
        grade3: 0,
      },
    },
  ],
My code to get this json:
let a = [];
    for (let i = 0; i <= data.length; i++) {
      if (!data[i]) {
        continue;
      }
      const {avgTotalWeight} = data[i];
      const {name} = data[i].truerun.batch.shellfish;
      const {alias} = data[i].truerun.grade_list;
      const {updatedAt} = data[i];
      const {isExist} = data[i].truerun;
      if (avgTotalWeight !== null) {
        let grade1,
          grade2,
          grade3 = 0;
        if (alias === "G1") {
          grade1 = avgTotalWeight;
        } else grade1 = 0;
        if (alias === "G2") {
          grade2 = avgTotalWeight;
        } else grade2 = 0;
        if (alias === "G3") {
          grade3 = avgTotalWeight;
        } else grade3 = 0;
        let b = {
          name: name,
          avgTotalWeight: avgTotalWeight,
          //updatedAt: updatedAt,
          //isExist: isExist,
          grade: {
            grade1: grade1,
            grade2: grade2,
            grade3: grade3,
          },
        };
        a.push(b);
      }
    }
    return a;
 
    