Tell us what’s happening:
please help me figure out the issue. everything works well. code is fine (i think) but the last several task don’t check. to make some of them checked i even added “cidd” variable but now there are more that don’t check. please help me what is wrong with it.
Your code so far
<!-- file: index.html -->
/* file: script.js */
let price = 1.87;
let cid = [
['PENNY', 1.01],
['NICKEL', 2.05],
['DIME', 3.1],
['QUARTER', 4.25],
['ONE', 90],
['FIVE', 55],
['TEN', 20],
['TWENTY', 60],
['ONE HUNDRED', 100]
];
let cidd = [
['PENNY', 1.01, 0.01],
['NICKEL', 2.05, 0.05],
['DIME', 3.1, 0.1],
['QUARTER', 4.25, 0.25],
['ONE', 90, 1],
['FIVE', 55, 5],
['TEN', 20, 10],
['TWENTY', 60, 20],
['ONE HUNDRED', 100, 100]
];
let change = [];
let status = 'OPEN';
const cashInput = document.getElementById("cash");
const purchaseBtn = document.getElementById("purchase-btn");
const changeDue = document.getElementById("change-due");
const calculate = (inp) => {
const inpNumber = (parseFloat(inp) - price);
let number = inpNumber;
let division;
if(inpNumber > cidd.reduce((sum, item) => sum + item[1], 0)){
status = "INSUFFICIENT_FUNDS";
updateChangeDue(inpNumber);
return;
}else if(inpNumber === cidd.reduce((sum, item) => sum + item[1], 0)){
status = "CLOSED";
}else if(inpNumber === 0){
updateChangeDue(inpNumber);
return;
}else if(inpNumber < 0){
alert("Customer does not have enough money to purchase the item")
return;
}else if(!inpNumber){
return;
}else{
status = "OPEN";
}
for(let i = 8; i >= 0; i--){
if(Math.floor(number / cidd[i][2]) >= 1){
division = Math.floor(number / cidd[i][2]) * cidd[i][2] > cidd[i][1] ? cidd[i][1] : Math.floor(number / cidd[i][2]) * cidd[i][2];
change.push({ [cidd[i][0]]: division});
number = (number - division).toFixed(2);
cidd[i][1] -= division;
cid[i][1] = division;
}
}
updateChangeDue(inpNumber);
}
const updateChangeDue = (num) => {
changeDue.style.display = "block";
if(num === 0){
changeDue.textContent = "No change due - customer paid with exact cash";
}else{
const changeString = change.map(item => {
const key = Object.keys(item)[0];
return `${key}: $${item[key]} </br>`;
}).join("");
changeDue.innerHTML = `Status: ${status}</br>${changeString}`
}
console.log(cid, change)
}
purchaseBtn.addEventListener("click", () => {
change = [];
calculate(cashInput.value);
})
/* file: styles.css */
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
Challenge Information:
Build a Cash Register Project - Build a Cash Register