diff --git a/package-lock.json b/package-lock.json index 6ca9060..ad2ba9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1079,6 +1079,7 @@ "version": "22.13.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -4318,6 +4319,7 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, "license": "MIT" }, "node_modules/update-browserslist-db": { diff --git a/src/transactions.ts b/src/transactions.ts index f1cd836..84bec41 100644 --- a/src/transactions.ts +++ b/src/transactions.ts @@ -22,7 +22,8 @@ const transactions: Transaction[] = [ function filterIncomeTransactions(transactions: Transaction[]): Transaction[] { // write your code here... - return []; // replace empty array with what you see is fit + return transactions.filter(([type]) => type === "income"); + // replace empty array with what you see is fit } // `filterExpenseTransactions` function that: @@ -33,7 +34,7 @@ function filterIncomeTransactions(transactions: Transaction[]): Transaction[] { function filterExpenseTransactions(transactions: Transaction[]): Transaction[] { // write your code here... - return []; // replace empty array with what you see is fit + return transactions.filter(([type]) => type === "expense"); // replace empty array with what you see is fit } // `calculateTotalIncome` function that: @@ -43,8 +44,9 @@ function filterExpenseTransactions(transactions: Transaction[]): Transaction[] { // calculateTotalIncome(transactions); // => 3200 (1000 + 1500 + 700) function calculateTotalIncome(transactions: Transaction[]): number { // write your code here... - - return -1; // replace -1 with what you see is fit + return transactions + .filter(([type]) => type === "income") + .reduce((sum, [, amount]) => sum + amount, 0); // replace -1 with what you see is fit } // `calculateTotalExpenses` function that: @@ -54,8 +56,9 @@ function calculateTotalIncome(transactions: Transaction[]): number { // calculateTotalExpenses(transactions); // => 800 (500 + 300) function calculateTotalExpenses(transactions: Transaction[]): number { // write your code here... - - return -1; // replace -1 with what you see is fit + return transactions + .filter(([type]) => type === "expense") + .reduce((sum, [, amount]) => sum + amount, 0); // replace -1 with what you see is fit } // `calculateNetTotal` function that: @@ -66,7 +69,9 @@ function calculateTotalExpenses(transactions: Transaction[]): number { function calculateNetTotal(transactions: Transaction[]): number { // write your code here... - return -1; // replace -1 with what you see is fit + return ( + calculateTotalIncome(transactions) - calculateTotalExpenses(transactions) + ); // replace -1 with what you see is fit } // `filterSignificantTransactions` function that: @@ -80,9 +85,7 @@ function filterSignificantTransactions( transactions: Transaction[], threshold: number ): Transaction[] { - // write your code here... - - return []; // replace empty array with what you see is fit + return transactions.filter(([, amount]) => amount >= threshold); // replace empty array with what you see is fit } export { @@ -93,4 +96,4 @@ export { calculateTotalExpenses, calculateNetTotal, filterSignificantTransactions, -}; +}; \ No newline at end of file