Cash register function
Function call:
Returns:
I created this function as a requirement for my freeCodeCamp JavaScript Algorithms and Data Structures Certification. Output isn’t terribly human-readable, but, well, human-readable wasn’t part of the requirements. I suppose cash registers don’t really speak English, though, so I guess that’s okay. Here are the requirements I built to:
- Design a cash register drawer function
checkCashRegister()
that accepts purchase price as the first argument (price
), payment as the second argument (cash
), and cash-in-drawer (cid
) as the third argument. cid
is a 2D array listing available currency.- The
checkCashRegister()
function should always return an object with astatus
key and achange
key. - Return
{status: "INSUFFICIENT_FUNDS", change: []}
if cash-in-drawer is less than the change due, or if you cannot return the exact change. - Return
{status: "CLOSED", change: [...]}
with cash-in-drawer as the value for the keychange
if it is equal to the change due. - Otherwise, return
{status: "OPEN", change: [...]}
, with the change due in coins and bills, sorted in highest to lowest order, as the value of thechange
key.