陷入一个不那么无限的循环中?

时间:2017-07-27 16:43:51

标签: javascript arrays infinite-loop

我对JavaScript非常陌生,所以请不要因为“无知”而攻击我。的问题。

在我目前的代码中,我被困在似乎是无限循环(但并非完全无限)的东西中,最终在经过我的所有提示后5次结束。

var authors = [];
                for(var authorName = 0; authorName < books.length; authorName++)
            {
                authors[0]=parseFloat(prompt("Who wrote War and Peace?"));
                authors[1]=parseFloat(prompt("Who wrote Huckleberry Finn?"));
                authors[2]=parseFloat(prompt("Who wrote The Return of the Native?"));
                authors[3]=parseFloat(prompt("Who wrote A Christmas Carol?"));
                authors[4]=parseFloat(prompt("Who wrote Exodus?"));

        }

我不确定如果我没有正确设置阵列或for循环,或者我需要做些什么来让它完成并填充数组。

请记住,我是JavaScript的新手,所以最基本,初学者,简单的答案是最好的。我现在正试图在基础知识上站稳脚跟。 (:

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

var bookNames = [
    "War and Peace?",
    "Huckleberry Finn?",
    "The Return of the Native?",
    "A Christmas Carol?",
    "Exodus?"
];

for(var authorName = 0; authorName < books.length; authorName++)
{
   authors[authorName]=parseFloat(prompt("Who wrote " + bookNames[authorName] + "?"));
}

这只会触发5次,是您尝试做的更好的方法。另外,我会将authorName的名称更改为更好地描述它的内容。

答案 1 :(得分:0)

for块中的每一行代码都会按指定的次数运行多次,在本例中为books.length次。每次循环运行时,循环计数器(在这种情况下为authorName)可用作具有当前值的变量,在这种情况下,它将在5次迭代中取值0到4。

for(var authorName = 0; authorName < books.length; authorName++)
{
  authors[authorName] = prompt("Who wrote " + books[authorName] + "?");
}