1

我正在上一个初学者的 javascript 课程。我无法弄清楚我在下面的作业中做错了什么。我不完全了解如何将这些部分组合在一起。我一直在使用 Firefox Web 控制台进行调试。但是,我对这一点感到困惑。请就如何改进下面的代码给我反馈。感谢您的反馈。=)

*程序的工作方式: *

  1. 提示用户输入一系列单词(存储在数组中)
  2. 它应该包括一个退出提示的选项
  3. 最后,对单词列表进行排序并将它们连接在一起

var words = [];
while (true) {
    var word = prompt("Please enter a list of words or enter 'exit' to leave the prompt,"");
    if (word ==="exit") {
        break;
    }

    var total_words = 0;
    for (var index = 0; index < words.length; index++);{
      total_words = words.sort[index];
}
document.write(words[index]);
4

2 回答 2

0

对于您使用的任何浏览器,请查看错误日志。在 Firefox 中,转到 Web 开发人员 -> 错误控制台。在 IE 中,打开高级选项并取消选中“禁用脚本调试”,然后查看加载页面时应该出现的错误。在 Chrome 中......我不记得我的头顶,也没有在这台计算机上。

您应该看到以下错误消息:

  1. 未终止的字符串文字 - 查看您发布的内容中突出显示的语法。请注意通话"中的缺失。prompt
  2. 复合语句中缺少 } - 您的for循环有两个错误:一个是;正确的。这不会导致实际的运行时错误,但绝对不会达到您想要的结果。使用块或循环,您可以在之后只运行一行代码,当它到达分号时它将标记循环的结束。在您的情况下,您只需要花括号。第二个问题是您有一个打开的花括号,没有相应的关闭。

此外,一旦您修复了这两个,脚本将在页面上写入“未定义”。这是因为实际上从未将任何内容添加到words. 正如 Joe Simmons 在评论中提到的,您需要words.push(word)将单词添加到数组中。

我不确定该total_words变量的用途,因为您从未真正使用过它,但这是您需要做的事情的开始,忽略它。我还删除了for循环,因为它只与total_words变量一起使用:

var words = [];
while (true) {
    var word = prompt("Please enter a list of words or enter 'exit' to leave the prompt", ""); //fix the quote issue here
    if (word ==="exit") {
        break;
    }
    words.push(word); //add entered word to array
}
words.sort(); //sort *after* the loop
document.write(words.join(",")); //this will write the words as a comma-separated list, as an example

因此,如果您在提示符“狗”、“猫”和“河马”中输入,输出将是:

cat,dog,hippopotamus
于 2013-10-06T00:28:06.740 回答
0

尝试这个:

<script type="text/javascript">
var words = new Array();
while (true) {
  var word = prompt("Please enter a list of words or enter 'exit' to leave the prompt","");
  if (word ==="exit") {
    break;
  }
  words.push(word);
}
words.sort();
document.write(words);

</script>
于 2013-10-06T00:29:54.713 回答