diff --git a/src/transactions.ts b/src/transactions.ts index f1cd836..def0619 100644 --- a/src/transactions.ts +++ b/src/transactions.ts @@ -20,9 +20,7 @@ const transactions: Transaction[] = [ // example: // filterIncomeTransactions(transactions); // => [["income", 1000], ["income", 1500], ["income", 700]] function filterIncomeTransactions(transactions: Transaction[]): Transaction[] { - // write your code here... - - return []; // replace empty array with what you see is fit + return transactions.filter((transaction) => transaction.includes("income")); } // `filterExpenseTransactions` function that: @@ -31,9 +29,7 @@ function filterIncomeTransactions(transactions: Transaction[]): Transaction[] { // example: // filterExpenseTransactions(transactions); // => [["expense", 500], ["expense", 300]] function filterExpenseTransactions(transactions: Transaction[]): Transaction[] { - // write your code here... - - return []; // replace empty array with what you see is fit + return transactions.filter((transaction) => transaction.includes("expense")); } // `calculateTotalIncome` function that: @@ -41,34 +37,69 @@ function filterExpenseTransactions(transactions: Transaction[]): Transaction[] { // - calculates the total income and returns it. // example: // calculateTotalIncome(transactions); // => 3200 (1000 + 1500 + 700) -function calculateTotalIncome(transactions: Transaction[]): number { - // write your code here... +function calculateTotalIncome(transactions: Transaction[]): any { + let incomeOnly = transactions.filter((transaction) => + transaction.includes("income") + ); + + let result = incomeOnly.reduce((acc, curr) => { + return acc + curr[1]; + }, 0); - return -1; // replace -1 with what you see is fit + console.log(result); + return result; } +// calculateTotalIncome(transactions); + // `calculateTotalExpenses` function that: // - Accepts a "transactions" parameter of type "Transaction[]". // - calculates the total expense and returns it. // example: // calculateTotalExpenses(transactions); // => 800 (500 + 300) -function calculateTotalExpenses(transactions: Transaction[]): number { - // write your code here... +function calculateTotalExpenses(transactions: Transaction[]): any { + let expenseOnly = transactions.filter((transaction) => + transaction.includes("expense") + ); + + let result = expenseOnly.reduce((acc, curr) => { + return acc + curr[1]; + }, 0); - return -1; // replace -1 with what you see is fit + console.log(result); + return result; } +// calculateTotalExpenses(transactions); // `calculateNetTotal` function that: // - Accepts a "transactions" parameter of type "Transaction[]". // - calculates the net total (total income - total expenses) and returns it. // example: // calculateNetTotal(transactions); // => 2400 (3200 - 800) -function calculateNetTotal(transactions: Transaction[]): number { - // write your code here... +function calculateNetTotal(transactions: Transaction[]) { + let incomeOnly = transactions.filter((transaction) => + transaction.includes("income") + ); + + let result1 = incomeOnly.reduce((acc, curr) => { + return acc + curr[1]; + }, 0); - return -1; // replace -1 with what you see is fit + let expenseOnly = transactions.filter((transaction) => + transaction.includes("expense") + ); + + let result2 = expenseOnly.reduce((acc, curr) => { + return acc + curr[1]; + }, 0); + + let total = result1 - result2; + console.log(total); + return total; } +// calculateNetTotal(transactions); + // `filterSignificantTransactions` function that: // - Accepts 2 parameters: // - a "transactions" parameter of type "Transaction[]". @@ -80,11 +111,11 @@ function filterSignificantTransactions( transactions: Transaction[], threshold: number ): Transaction[] { - // write your code here... - - return []; // replace empty array with what you see is fit + return transactions.filter((item) => { + return item[1] >= threshold; + }); } - +filterSignificantTransactions(transactions, 500); export { Transaction, filterIncomeTransactions,