reduce を使って各カテゴリごとに値を集計する方法がとても便利。

今回は商品の価格をタイプごとにまとめる。

const array = [{ 
    "name": "なし", 
    "type": "くだもの", 
    "price": 100 
  }, {
    "name": "きゅうり", 
    "type": "やさい", 
    "price": 198 
  }, {
    "name": "もも", 
    "type": "くだもの", 
    "price": 300 
  }, {
    "name": "マグロ", 
    "type": "さかな", 
    "price": 500 
  }];
var result = array.reduce((accumulator, currentElement) => {
  var element = accumulator.find((e) => e.type === currentElement.type);
  if (element) {
    element.price += currentElement.price;
  } else {
    accumulator.push({
      "type": currentElement.type,
      "price": currentElement.price
    });
  }
  return accumulator;
}, []);
console.log(JSON.stringify(result));

初期値は空の配列。

その配列に大して find で要素が存在するかチェックする。

存在すれば加算し、なければ新規追加する。