Debo hacer un script que le pedirá al usuario que ingrese números hasta que escriba salir. Tengo esto funcionando, pero estoy luchando con el elemento final donde tengo que calcular la cantidad de entradas (no la suma) que el usuario envió sin incluir la var - quit.
Cualquier ayuda sería muy apreciada.
<script> var userWord = "quit"; var numList = Array(); var total = 0; do { userWord = prompt ("Enter a number of the word quit"); userWord = userWord.toLowerCase(); numList.push(userWord); } while (userWord != "quit") document.writeln("<p>"); for (t = 0; t < numList.length - 1; t++) { document.write(numList[t]); if (t < numList.length - 2) { document.writeln(", "); } } document.writeln("</p>"); </script>Hay una manera más fácil. Simplemente puede usar Array.prototype.join() para convertir la matriz en una cadena con un delimitador de su elección.
A continuación se muestra un ejemplo de esto. También tenga en cuenta que document.write no se usa comúnmente. En su lugar, podemos usar un elemento div y escribir en él usando la propiedad innerHTML .
Lo último es el bucle. Depende de usted, pero generalmente solo hago un bucle para siempre y me break cuando recibo la entrada de salida. Puede ser más limpio, pero eso es elección personal. Tenga en cuenta que en su código inserta la cadena "salir" en la matriz de resultados, probablemente no sea lo que desea.
<html> <body> <div></div> </body> <script> const div = document.querySelector('div'); const numList = []; while (true) { const userWord = prompt ("Enter a number of the word quit"); if(userWord == null || userWord.toLowerCase() == 'quit') { break; } numList.push(parseInt(userWord, 10)); } div.innerHTML = "<p>You typed " + numList.length + " numbers: " + numList.join(', ') + "</p>"; </script> </html>Comprobar que el código maneja bien los valores de entrada no enteros es un ejercicio que queda para el lector.
Puede usar numList.length-1 para contar cuántos números se almacenaron en la matriz numList , aquí hay un ejemplo de trabajo:
var userWord = "quit"; var numList = Array(); var total = 0; do { userWord = prompt ("Enter a number or the word quit"); userWord = userWord.toLowerCase(); numList.push(userWord); } while (userWord != "quit") document.writeln("<p>"); for (t = 0; t < numList.length - 1; t++) { document.write(numList[t]); if (t < numList.length - 2) { document.writeln(", "); } } document.writeln(`<br>You typed ${numList.length-1} number(s)`); document.writeln("</p>");