Reducir lista

by academiax

JavaScript

let lista = [{
    id: 1,
    area: 10
  },
  {
    id: 2,
    area: 20
  },
  {
    id: 3,
    area: 10
  },
  {
    id: 4,
    area: 20
  },
  {
    id: 1,
    area: 100
  },
  {
    id: 2,
    area: 20
  },
  {
    id: 3,
    area: 40
  },
  {
    id: 4,
    area: 40
  },
  {
    id: 5,
    area: 40
  },
  {
    id: 6,
    area: 40
  }
];

let resultado = {};

for (let item of lista) {
  let {
    id,
    area
  } = item;
  if (id in resultado) {
    resultado[id] += area;
  } else {
    resultado[id] = area;
  }
}

lista = Object.keys(resultado).map(id => ({
  id,
  area: resultado[id]
}));

console.log(lista);