JSFiddle - React, Tailwind, and code Playground

JavaScript

async function getData(endpoint) {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          const data = [ { productName: 'A', totalPrice: 12, purchasedQuantity: 2 }, { productName: 'B', totalPrice: 2.5, purchasedQuantity: 5 }, { productName: 'C', totalPrice: 9, purchasedQuantity: 23 }];
          resolve(data);
        }, 2000);
      });
    }

    async function calculateExpense() {
      const data = await getData('/purchase');
      let totalExpense = 0;
      let totalQuantity = 0;
      for (let purchase of data) {
        totalExpense += purchase.totalPrice;
        totalQuantity += purchase.purchasedQuantity;
      }
      return totalExpense / totalQuantity;
      //return expensePerProduct;
    }

calculateExpense().then(result => console.log(result));