expenses-tracker.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const account = {
  2. name: 'Andrew Mead',
  3. expenses: [],
  4. income: [],
  5. addExpense: function (description, amount) {
  6. this.expenses.push({description, amount})
  7. },
  8. addIncome: function (description, amount) {
  9. this.income.push({
  10. description: description,
  11. amount: amount
  12. })
  13. },
  14. getAccountSummary: function () {
  15. let total = 0
  16. let totalIncome = 0
  17. let totalExpenses = 0
  18. this.expenses.forEach(function(expense) {
  19. totalExpenses = totalExpenses + expense.amount
  20. })
  21. this.income.forEach(function(income){
  22. totalIncome = totalIncome + income.amount
  23. })
  24. total = totalIncome - totalExpenses
  25. return `${this.name} has a balance of $${total}. $${totalIncome} in income. $${totalExpenses} in expenses.`
  26. }
  27. }
  28. // Expenses --> description, amount
  29. // addExpenses - description, amount
  30. // getAccountSummary - total up all expenses --> Andrew Mead has $1250 in expenses.
  31. // 1. add income arrray to account
  32. // 2. add income method -> description, amount
  33. // 3. Tweak getAccountSummary
  34. // Andrew Mead has a balance of $10. $100 in income. $90 in expenses.
  35. account.addExpense('Rent', 950)
  36. account.addExpense('Coffee', 2)
  37. account.addIncome('Job', 1000)
  38. console.log(account.getAccountSummary())
  39. console.log(account.expenses)
  40. console.log(account.income)