私のコードの中で、私はバグに遭遇しました。foreachループJavaScriptが動作しません
このjavascriptコードを実行し、コンソールから出力される内容を確認します。
私はtodoリストを持っています。私は新しいものをputしたいと思っています。私はそれから新しいものをもう一度打つことになるでしょう。
今、配列[0]と[1]の2つの項目が正しいはずですか?
アイテムを削除しようとすると機能しません。私は2回のような削除キーの用語を使用して、それが再び働くためにリストをヒットしなければなりませんか? 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>
あなたは絶対に正しいです!それは今働きます! ""内部に配列を持っていたら、すでに0でインデックスを開始しました。私は、0の髪の毛ではなく、1のインデックスを持つ最初のアイテムを大声で削除する理由を自分自身に尋ね続けました。ありがとう!! –
スポットがあります!それも私が気づいた最初のことです。空の配列を 'var todos = [];'(推奨)として、あるいは 'var todos = new Array();'のように初期化する必要があります。 – cezar
私は3分で私にbtwをさせるときに私はこの答えを受け入れるだろう:) –