export function transactionPrices(data, filterOK=true) { let transactionPrices = {}; data.forEach((transaction) => { const price = Number(transaction[3].replace(',','.')); if (!filterOK || transaction[7] === "OK") transactionPrices[price] = transactionPrices[price] ? transactionPrices[price] + 1 : 1; }); return transactionPrices; } export function calculateTotal(data, filterOK=true) { let total = 0; data.forEach((transaction) => { const price = Number(transaction[3].replace(',','.')); if (!filterOK || transaction[7] === "OK") total += price; }); return total; } export function filterMultiples(prices, multiples=[3.5]) { let sales = {}; Object.entries(prices).forEach((pair) => { const price = Number(pair[0]); const amount = pair[1]; let dealt = false; // Ugly loop exit //console.log(price,amount); for (let i in multiples) { let multiple = multiples[i]; if (price % multiple === 0) { const quantity = price/multiple*amount; sales[multiple] = sales[multiple] ? sales[multiple] + quantity : quantity; dealt = true; break; } } if (!dealt) sales[price] = sales[price] ? sales[price] + 1 : 1 ; }); console.log(multiples); return sales; }