Tell us what’s happening:
no logro entender cual es la falla de mi codigo, he consultado a demas personas y ni aun asi puedo solucionarlo. siempre me salta error de codigo
Your code so far
<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cash Register</title>
</head>
<body>
<h1>Cash Register</h1>
<label for="price">Price of Item:</label>
<input type="number" id="price" value="19.5" readonly>
<label for="cash">Cash provided:</label>
<input type="number" id="cash">
<button id="purchase-btn">Purchase</button>
<div id="change-due"></div>
<script src="script.js"></script>
</body>
</html>
/* file: script.js */
let price = 19.5;
let cid = [
["PENNY", 0.5],
["NICKEL", 0],
["DIME", 0],
["QUARTER", 0],
["ONE", 0],
["FIVE", 0],
["TEN", 0],
["TWENTY", 0],
["ONE HUNDRED", 0]
];
document.getElementById("purchase-btn").addEventListener("click", function() {
let cash = parseFloat(document.getElementById("cash").value);
function checkCashRegister(price, cash, cid) {
const currencyUnits = [
["PENNY", 0.01],
["NICKEL", 0.05],
["DIME", 0.1],
["QUARTER", 0.25],
["ONE", 1],
["FIVE", 5],
["TEN", 10],
["TWENTY", 20],
["ONE HUNDRED", 100]
];
let changeDue = cash - price;
let totalCid = cid.reduce((sum, curr) => sum + curr[1], 0).toFixed(2);
if (cash < price) {
alert("Customer does not have enough money to purchase the item");
return "INSUFFICIENT_FUNDS";
}
if (cash === price) {
document.getElementById("change-due").innerText = "No change due - customer paid with exact cash";
return "EXACT_PAYMENT";
}
if (totalCid < changeDue) {
document.getElementById("change-due").innerText = "Status: INSUFFICIENT_FUNDS";
return "INSUFFICIENT_FUNDS";
}
if (totalCid == changeDue) {
let changeArray = cid.filter(curr => curr[1] > 0);
changeArray.reverse();
document.getElementById("change-due").innerText = "Status: CLOSED " + changeArray.map(change => ${change[0]}: $${change[1]}).join(" ");
return "CLOSED";
}
let changeArray = [];
for (let i = currencyUnits.length - 1; i >= 0; i--) {
let currencyName = currencyUnits[i][0];
let currencyValue = currencyUnits[i][1];
let cidValue = cid[i][1];
let currencyAmount = 0;
while (changeDue >= currencyValue && cidValue > 0) {
changeDue = (changeDue - currencyValue).toFixed(2);
cidValue = (cidValue - currencyValue).toFixed(2);
currencyAmount += currencyValue;
}
if (currencyAmount > 0) {
changeArray.push([currencyName, currencyAmount]);
}
}
if (changeDue > 0) {
document.getElementById("change-due").innerText = "Status: INSUFFICIENT_FUNDS";
return "INSUFFICIENT_FUNDS";
}
document.getElementById("change-due").innerText = "Status: OPEN " + changeArray.map(change => ${change[0]}: $${change[1]}).join(" ");
return { status: "OPEN", change: changeArray };
}
checkCashRegister(price, cash, cid);
});
/* 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/130.0.0.0 Safari/537.36
Challenge Information:
Build a Cash Register Project - Build a Cash Register