Help me please ! I didn't know the problem

Tell us what’s happening:

Your code so far


function checkCashRegister(price, cash, cid) {
let cashRegister = { statuts: '', change: cid};
const changeNeeded = parseFloat(cash - price).toFixed(2);
constchangeAvailable = getTotalCashRegisterChange(cid);
cashRegister.statuts = getTotalCashRegiterStatus(changeNeeded, changeAvailable);

if (cashRegister.statuts === REGISTER-STATUTS.insufficientFunds) {
cashRegister.cahnge = [];

return cashRegister;
}

cashRegister.change = getCustomerChange(cahngeNeeded, cid);

if (changeNeeded > getTotalRegisterChange(cashRegister.change)) {
cashRegister.statuts = REGISTER_STATUS.insufficientFunds;
cashRegister.change = []
}
if(cashRegister.statuts === REGISTER-STATUTS.closed) {
cashRegister.change = [...cid]
}
return cashRegister; 
}

function getCustomerChange(changeNeeded, changeInDrawer) {
const change = [];
const currencyDictionary = {
"PENNY": 0.01,
"NICKEL": 0.05,
"DIME": 0.10,
"QUARTER": 0.25,
"ONE": 1.00,
"FIVE": 5.00,
"TEN": 10.00,
"TWENTY": 20.00,
"ONE HUNDRED": 100.00
};

for (let i = changeInDrawer.length - 1; i >=0; i--) {
  const coinName = changeInDrawer[i][0];
  const coinTotal = changeInDrawer[i][1];
  const coinValue = currencyDictionnary[coinName];
  let coinAmmount = (coinTotal / coinValue).toFixed(2);
  let coinToReturn = 0;

  while (change >= coinValue && coinAmmount > 0) {
    changeNeeded -= coinValue;
    cahngeNeeded = changeNeeded.toFixed(2);
    coinAmmount--;
    coinsToReturn++;
  }

  if (coinTiReturn > 0) {
    chnage.push([coinName, coinsToReturn * coinValue]);
  }
}
return change;
}
function getTotalCashRegisterStatus(chhangedNeeded, changeAvailable) {
if (Number(changeNeeded) > Number(changeAvailable)) {
  return REGISTER_STATUTS.insufficientFunds;
}

if (Number(changeNeeded) < Number(changeAvailable)) {
  return REGIDTER.STATUTS.open;
}
return REGISTER.STATUTS.closed;
}

function getTotalCashRegisterChange(changeInDrawer) {
}

checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36.

Challenge: Cash Register

Link to the challenge:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register

Hello and Welcome!

You didn’t specify the problem or what’s happening :stuck_out_tongue:

1 Like

Hello my friend :slight_smile:
Yes the test did not pass
I hope to help

You have many syntax errors:

function getTotalCashRegisterStatus(changeNeeded, changeAvailable) {
  if (Number(changeNeeded) > Number(changeAvailable)) {
    return REGISTER_STATUTS.insufficientFunds;
  }

  if (Number(changeNeeded) < Number(changeAvailable)) {
    return REGIDTER.STATUTS.open;
  }
  return REGISTER.STATUTS.closed;
}

function checkCashRegister(price, cash, cid) {
  let cashRegister = {
    statuts: '',
    change: cid
  };
  const changeNeeded = parseFloat(cash - price).toFixed(2);
  const changeAvailable = getTotalCashRegisterChange(cid);
  cashRegister.statuts = getTotalCashRegisterStatus(changeNeeded, changeAvailable);

  if (cashRegister.statuts === REGISTER - STATUTS.insufficientFunds) {
    cashRegister.cahnge = [];

    return cashRegister;
  }

  cashRegister.change = getCustomerChange(cahngeNeeded, cid);

  if (changeNeeded > getTotalRegisterChange(cashRegister.change)) {
    cashRegister.statuts = REGISTER_STATUS.insufficientFunds;
    cashRegister.change = []
  }
  if (cashRegister.statuts === REGISTER - STATUTS.closed) {
    cashRegister.change = [...cid]
  }
  return cashRegister;
}

function getCustomerChange(changeNeeded, changeInDrawer) {
  const change = [];
  const currencyDictionary = {
    "PENNY": 0.01,
    "NICKEL": 0.05,
    "DIME": 0.10,
    "QUARTER": 0.25,
    "ONE": 1.00,
    "FIVE": 5.00,
    "TEN": 10.00,
    "TWENTY": 20.00,
    "ONE HUNDRED": 100.00
  };

  for (let i = changeInDrawer.length - 1; i >= 0; i--) {
    const coinName = changeInDrawer[i][0];
    const coinTotal = changeInDrawer[i][1];
    const coinValue = currencyDictionnary[coinName];
    let coinAmmount = (coinTotal / coinValue).toFixed(2);
    let coinToReturn = 0;

    while (change >= coinValue && coinAmmount > 0) {
      changeNeeded -= coinValue;
      cahngeNeeded = changeNeeded.toFixed(2);
      coinAmmount--;
      coinsToReturn++;
    }

    if (coinTiReturn > 0) {
      chnage.push([coinName, coinsToReturn * coinValue]);
    }
  }
  return change;
}

function getTotalCashRegisterChange(changeInDrawer) {}

checkCashRegister(19.5, 20, [
  ["PENNY", 1.01],
  ["NICKEL", 2.05],
  ["DIME", 3.1],
  ["QUARTER", 4.25],
  ["ONE", 90],
  ["FIVE", 55],
  ["TEN", 20],
  ["TWENTY", 60],
  ["ONE HUNDRED", 100]
]);

I fixed various on the above, but there are others:

  • You’re using REGISTER_STATUTS in one line, where is it defined? By the way, it should be REGISTER_STATUS.
  • You’re using REGISTER.STATUTS in another line, again, where is it defined?
1 Like

thank you very much
I will try it (y)

you also never define a property called cahnge

1 Like