JSFiddle - React, Tailwind, and code Playground

JavaScript

var before = [
{
  "title": "House Coffee",
  "weight": "1kg",
  "grind": "filter",
  "quantity": 5
},
{
  "title": "House Coffee",
  "weight": "1kg",
  "grind": "filter",
  "quantity": 5
},
{
  "title": "House Coffee",
  "weight": "250g",
  "grind": "Whole Beans",
  "quantity": 4
},
{
  "title": "House Coffee",
  "weight": "250g",
  "grind": "Whole Beans",
  "quantity": 2
}
];

var after = summarizeArray(before);
console.log(after);

function summarizeArray(arr)	{
	var result = [];
	for(var i = 0; i < arr.length; i++)	{
		var added = false;
		for(var j = 0; j < result.length; j++)	{
			if((result[j].title == arr[i].title) && (result[j].weight == arr[i].weight) && (result[j].grind == arr[i].grind))	{
				added = true;
				result[j].quantity += arr[i].quantity;
				break;
			}
		}
		if(!added)	{
			result.push(arr[i]);
		}
	}
	return result;
}