[Solved] Merge and sum array objects Javascript

[ad_1]

You can use array reduce function and inside the reduce call back use findIndex to check if the accumulator array have an object with same tag. If a object with same tag is found then update the counter in that object , otherwise push the current object in the accumulator array

let data = [{
    "tag": "#sala",
    "state": {
      "counter": 1
    }
  },
  {
    "tag": "#sala",
    "state": {
      "counter": 2
    }
  }
];
let newData = data.reduce(function(acc, curr) {
  let findTagIndex = acc.findIndex(item => item.tag === curr.tag);
  if (findTagIndex === -1) {
    acc.push(curr)
  } else {
    acc[findTagIndex].state.counter += curr.state.counter
  }
  return acc;
}, []);
console.log(newData)

1

[ad_2]

solved Merge and sum array objects Javascript