foreach循环JavaScript不起作用

时间:2017-05-16 07:18:17

标签: javascript html

在我的代码中,我遇到了一个错误。

如果您运行此javascript代码并查看控制台输出的内容。

我将有一个待办事项清单,我将输入新的东西,我想做的很棒,它添加到数组中。然后我会再次点击新的,很棒,为阵列增加了另一件事。

现在我的数组[0]和[1]中应该有两个项目正确吗?

如果我尝试删除它不起作用的项目。我必须使用删除密钥术语两次,然后点击列表再次工作? Idk如果它只是我身边的一个错误但运行我的javascript应用程序使用HTML页面中的keyterms并尝试添加新的事情,列出它们,然后尝试删除它们。它可以工作但是第一次尝试不起作用。

警告会导致浏览器在键入quit之前不断打开警报

var todos = [""];
var input = prompt("What would you like to do today?");

while (input !== "quit") {
  if (input === "list") {
    todos.forEach(function(todo, i) {
      console.log(i + ": " + todo);
    });
  } else if (input === "new") {
    var newTodo = prompt("Enter new thing to do");
    todos.push(newTodo);
  } else if (input === "delete") {
    var index = prompt("Enter index of todo to delete");
    todos.splice(index, 1);
  }

  input = prompt("What would you like to do?");
}
console.log("Ok, you have quit the application");
<!DOCTYPE html>
<html>

<head>
  <title>Todo List</title>

</head>

<body>
  <h1>To Do List</h1>
  <ul>
    <li>"new" - Add A Todo</li>
    <li>"list" - List all Todos</li>
    <li>"Delete" A Specific Todo</li>
    <li>"quit" - quit the application</li>


  </ul>
</body>

</html>

1 个答案:

答案 0 :(得分:3)

很难说出你做了什么来产生负面结果,但这是我最好的猜测:

var todos = [""];表示您的数组以todos[0]处的空字符串开头。您应该使用var todos = [];初始化数组。