В функции listTodos()
я не могу понять, как/почему аргумент-заполнитель i
для цикла todos.forEach
выплескивает номера индексов массива. Для меня, кажется, что оба placeholder/arguments будут делать то же самое, поскольку я не могу понять, как они указаны друг от друга.Массивы Javascript и .forEach Loop Аргументы
Итак, я не понимаю, почему консоль не регистрировалась: "Buy New Turtle: Buy New Turtle"
, а не: "0: Buy New Turtle"
.
todos.forEach(function(todo, i) {
console.log(i + ": " + todo);
Здесь весь "Todo List" JS код:
var todos = ["Buy New Turtle"];
var input = prompt("What would you like to do?");
while(input !== "quit") {
if(input === "list") {
\t listTodos();
}
else if(input === "new") {
\t addTodo();
}
else if(input === "delete") {
\t deleteTodo();
}
input = prompt("What would you like to do?");
}
console.log("OK YOU QUIT THE APP");
function listTodos() {
\t console.log("**********")
\t todos.forEach(function(todo, i) {
\t console.log(i + ": " + todo);
});
console.log("**********");
}
function addTodo() {
\t var newTodo = prompt("Enter new todo");
\t todos.push(newTodo);
\t console.log("Added Todo");
}
function deleteTodo() {
\t var index = prompt("Enter Index of Todo to Delete");
\t todos.splice(index, 1);
\t console.log("Deleted Todo");
}
Итак ... Могу ли я сделать какой-то смысл здесь? Может кто-нибудь прояснить это для меня? Благодаря!
Второй аргумент, переданный обратному вызову '.forEach()', является индексом. Первый аргумент - это значение из массива. Он также передаст сам массив в качестве третьего параметра. – Pointy
* «Я не могу понять, как/почему аргумент i placeholder для цикла todos.forEach выплескивает номера индексов массива.» * Потому что именно так был разработан 'forEach'. Что еще вы хотите знать об этом? –
[Вот страница MDN на .forEach() '.] (Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) – Pointy