我要做一个脚本,将要求用户输入数字,直到他们键入退出。我有这个工作,但我正在努力与最后的元素,我必须计算条目的数量(不是总和)的用户提交不包括var - quit。
如有任何帮助,不胜感激。
<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>
有一个更简单的方法。您可以使用Array.prototype.join()
将数组转换为带有您选择的分隔符的字符串。
下面是一个这样的例子。还要注意,document.write
并不常用。相反,我们可以使用div元素并使用innerHTML
属性写入它。
最后是循环。这取决于你,但我通常只是循环永远和break
当我收到退出输入。它可以更干净,但这是个人的选择。记住,在你的代码中,你按下了"退出"。字符串放到结果数组中,可能不是您想要的。
<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>
检查代码是否能很好地处理非整数输入值是留给读者的练习。
您可以使用numList.length-1
来计算在numList
数组中存储了多少数字,下面是一个工作示例:
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>");