I need to fetch values from another API using the guid inside this particular array, then group them together (hence I used reduce Javascript in this case)
However, I could not get those values sumEstimatedHours and sumWorkedHours  as expected. Can someone suggest a method please?
export const groupProjectsByPM = (listOfProjects) => {
  const dir = "./json";
  const estimatedHours = fs.existsSync(dir)
    ? JSON.parse(fs.readFileSync("./json/phases.json", "utf-8"))
    : null;
  let sumWorkedHours, sumEstimatedHours;
  const groupedProjects = listOfProjects?.reduce(
    (
      group,
      {
        guid,
        projectOwner: { name: POName },
        name,
        customer: { name: customerName },
        deadline,
        calculatedCompletionPercentage,
      }
    ) => {
      listOfProjects.map(async (element, index) => {
        // const element = listOfProjects[index];
        sumWorkedHours = await getWorkhoursByProject(element?.guid).then(
          (res) => {
            return res.reduce((acc, cur) => {
              return acc + cur.quantity;
            }, 0);
          }
        );
        const filteredEstimatedHours = estimatedHours.filter(
          (item) => item.project.guid === element.guid
        );
        sumEstimatedHours = filteredEstimatedHours.reduce((acc, cur) => {
          return acc + cur.workHoursEstimate;
        }, 0);
        group[POName] = group[POName] || [];
        group[POName].push({
          guid,
          name,
          POName,
          customerName,
          deadline,
          calculatedCompletionPercentage,
          sumEstimatedHours,
          sumWorkedHours,
        });
        return group;
      });
      return group;
    },
    []
  );
  return groupedProjects;
};
 
    