Estoy trabajando en una aplicación bancaria básica para una clase de JS principiante.
Esperado:
Actual:
¿Hay alguna manera de ajustar este código para mantener un saldo actual?
function bankingApp() { let currentBalance = 0; let userPrompt = prompt( "bank menu: w = withdrawal | d = deposit | b = balance | q = quit" ); switch (userPrompt) { case "w": function withdrawFunds() { let withdrawAmount = parseFloat(prompt("Withdraw amount: ")); currentBalance = currentBalance - withdrawAmount; console.log( "Withdraw: " + withdrawAmount + "New balance: " + currentBalance ); } withdrawFunds(); break; case "d": function depositFunds() { let depositAmount = parseFloat(prompt("Deposit amount:")); console.log( "Deposit: " + depositAmount + "New balance: " + currentBalance ); } depositFunds(); break; case "b": function checkBalance() { let balance = currentBalance; console.log(balance); } checkBalance(); break; case "q": function quitProgram() { let quit = "Quit the program."; console.log(quit); } quitProgram(); break; default: console.log("That menu is not available."); } }Está llamando a su función en un evento que sucede (clic en el botón). Ahora, la primera declaración en su función es establecer el saldo en 0. No hay nada que lo controle.
Simplemente mueva la declaración hacia afuera, para que la variable persista.
let currentBalance = 0; function bankingApp() { let userPrompt = prompt( "bank menu: w = withdrawal | d = deposit | b = balance | q = quit" ); switch (userPrompt) { case "w": function withdrawFunds() { let withdrawAmount = parseFloat(prompt("Withdraw amount: ")); currentBalance = currentBalance - withdrawAmount; console.log( "Withdraw: " + withdrawAmount + "New balance: " + currentBalance ); } withdrawFunds(); break; case "d": function depositFunds() { let depositAmount = parseFloat(prompt("Deposit amount:")); console.log( "Deposit: " + depositAmount + "New balance: " + currentBalance ); } depositFunds(); break; case "b": function checkBalance() { let balance = currentBalance; console.log(balance); } checkBalance(); break; case "q": function quitProgram() { let quit = "Quit the program."; console.log(quit); } quitProgram(); break; default: console.log("That menu is not available."); } }