//Necesito agregar uno al total cada vez que se ingresa el nombre del error. Por ejemplo, si escribo "S" en el indicador, agregará 1 a la dirección total y si escribo "W", se agregará al limpiaparabrisas. El bucle debe ejecutarse hasta que ingresé un valor nulo o cero y calculé los errores totales.
<html> <head><title>Charge Calculator</title></head> <body> <script type="text/javascript"> //Declaring Variables var day; var data=""; var steering = 0; var turbo =0; var wiper =0; day = prompt("Enter day: ",""); var BR="<br/>"; do { data = prompt("Enter Data: ",""); data = input.nextLine(); switch(data) { case 'S': steering++; break; case 'T': turbo++; break; case 'W': wiper++; break; } } while(data == "") document.write("day: " +day +BR); //Display destination name document.write("Steering issue: " +steering +BR); document.write("turbo Issue: " +turbo +BR); document.write("wiper Issue: " +wiper +BR); </script> </body> </html>Hay muchas cosas que mejorar en su código. Tenga en cuenta que la expresión write() potencialmente destruirá partes de su página basada en html. Infórmese sobre los comandos de manipulación DOM en su lugar.
El siguiente fragmento demuestra de forma muy breve cómo podría recopilar sus entradas. Usé su método prompt() simplemente para mostrar que se puede hacer, pero siempre preferiría un campo de input simple en su lugar.
const counts={s:0,t:0,w:0}; while (++counts[prompt("Please enter the error type code (s,t or w):").toLowerCase()]) {} console.log("steering: "+counts.s+ "\nturbo: "+counts.t+ "\nwipers: "+counts.w); Todo sucede dentro de la expresión que calcula el resultado de la condición while : el valor de entrada se convierte a counts y luego se incrementa una propiedad del objeto. Esto solo funcionará (= devolverá un resultado "veraz") para propiedades ya inicializadas como s , t o w . Para todos los demás casos, no se puede calcular un incremento, lo que da como resultado un resultado "NaN" ("no es un número"). Esto terminará el bucle while.
Parece que la recursión podría ser una solución más apropiada aquí. Aunque el de @Cartsten también se ve absolutamente bien.
function count() { const counts = { s: 0, t: 0, w: 0 }; const checkCounts = () => { let input = prompt( 'Please enter the error type code (s,t or w):' ).toLowerCase(); if (counts[input] !== undefined) { ++counts[input]; return checkCounts(); } }; checkCounts(); console.log( `steering: ${counts.s} \n turbo: ${counts.t} \n wipers: ${counts.w}` ); } count();