Javascript初学者帮助 - 数组,while和for循环

时间:2013-10-05 23:45:35

标签: javascript

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

* 该计划的运作方式: *

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

  5. 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]);
    

2 个答案:

答案 0 :(得分:0)

对于您使用的任何浏览器,请查看错误日志。在Firefox中,转到Web Developer - &gt;错误控制台。在IE中,打开“高级”选项并取消选中“禁用脚本调试”,然后查看加载页面时应显示的错误。在Chrome中...我不记得我的头顶而且没有在这台电脑上。

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

  1. 未终止的字符串文字 - 请查看您发布的内容中的语法高亮显示。请注意"来电中丢失的prompt
  2. 复合语句中的
  3. Missing} - 您的for循环有两个错误:一个是;之后的错误。这不会导致实际的运行时错误,但肯定无法实现您正在寻找的结果。使用块或循环,您可以在之后只运行一行代码,并在它到达分号时标记循环的结束。在你的情况下,你只需要花括号。第二个问题是你有一个没有相应关闭的开放花括号。
  4. 此外,一旦你修复了这两个,脚本将在页面上写“未定义”。这是因为实际上没有任何内容添加到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
    

    因此,如果您输入提示“dog”,“cat”和“hippopotamus”,输出将为:

    cat,dog,hippopotamus
    

答案 1 :(得分: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>