Track transaction data for customers and timestamps.

by Bhavik Bamania

JavaScript

const transactions = [
  { customer: "Alice", amount: 200, timestamp: 169229111 },
  { customer: "Bob", amount: 50, timestamp: 169229112 },
  { customer: "Alice", amount: 150, timestamp: 169229113 },
  { customer: "Charlie", amount: 300, timestamp: 169229114 },
  { customer: "Bob", amount: 150, timestamp: 169229115 },
];

function returnCustomerWithMaxTransactions(transactions) {
  let map = new Map();
  for (let transaction of transactions) {
    let maxCustomer = "";
    let maxAmount = 0;
    for(let {customer, amount} of transactions) {
      const total = (map.get(customer) || 0) + amount;
      map.set(customer, total);
      if(total > maxAmount) {
        maxAmount = total;
        maxCustomer = customer
      }
    }
    return maxCustomer;
  }
}

console.log(returnCustomerWithMaxTransactions(transactions))