function balanceCheckbook(checkbook = '') { if(typeof(checkbook) !== 'string') throw new Error('input must be a string'); checkbook = checkbook.trim(); let originalBalance = 0; let entries = checkbook.split('\n'); let balance = originalBalance; // exclude the orginalBalance at the top let totalEntries = entries.length - 1; for(index in entries) { let entry = entries[index]; // clean the line entry = entry.replace(/[^\.\w\d ]+/g, ''); // parse the line if(index == 0) { originalBalance = parseFloat(entry); balance = originalBalance; console.log(`Original_Balance: ${originalBalance.toFixed(2)}`); } else { let section = entry.split(' '); let expenseString = section[2]; let expense = parseFloat(expenseString); balance -= expense; console.log(`${entry} Balance ${balance.toFixed(2)}`); } } // compute summaries let totalExpense = originalBalance - balance; let averageExpense = totalExpense/totalEntries; // print summary console.log(`Total expense ${totalExpense.toFixed(2)}`); console.log(`Average expense ${averageExpense.toFixed(2)}`) } const input = ` 1233.00 125 Hardware;! 24.8?; 123 Flowers 93.5 127 Meat 120.90 120 Picture 34.00 124 Gasoline 11.00 123 Photos;! 71.4?; 122 Picture 93.5 132 Tires;! 19.00,?; 129 Stamps 13.6 129 Fruits{} 17.6 129 Market;! 128.00?; 121 Gasoline;! 13.6?; `; balanceCheckbook(input);
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Discussion on: Daily Challenge #4 - Checkbook Balancing
For further actions, you may consider blocking this person and/or reporting abuse