JSFiddle - React, Tailwind, and code Playground

by borisjavier

JavaScript

const resultadoConsulta = '[{"fecha":"2023-03-12","planta":"1","material":"Borracha","fornecedor":"A","peso":"1000"},{"fecha":"2023-03-13","planta":"1","material":"Borracha","fornecedor":"A","peso":"1500"},{"fecha":"2023-03-15","planta":"1","material":"PET","fornecedor":"A","peso":"2100"},{"fecha":"2023-03-19","planta":"1","material":"Multicamada","fornecedor":"A","peso":"10000"},{"fecha":"2023-04-05","planta":"1","material":"Borracha","fornecedor":"A","peso":"200"}]';

const mat = JSON.parse(resultadoConsulta);
const materiales = {};

for (const registro of mat) {
  const planta = registro.planta;
  const material = registro.material;
  const peso = parseInt(registro.peso);

  const clave = `${planta}-${material}`;
  if (materiales.hasOwnProperty(clave)) {
    materiales[clave] += peso;
  } else {
    materiales[clave] = peso;
  }
}

const resultados = Object.entries(materiales).map(([clave, peso]) => {
  const [planta, material] = clave.split('-');
  return {
    planta,
    material,
    peso
  };
});

console.log(resultados);