для цикла: Это распространенный метод итерации массива, где мы используем i
как index
для доступа к элементам в массиве letters
. MDN Документы для справки
var letters = ["a","b","c"];
for (let i = 0; i < letters.length; i++)
{
console.log("Index : "+i, "Value : "+letters[i]);
}
for ... in loop: Этот цикл всегда повторяется по индексу.При перемещении по массиву переменная i
будет содержать значение index
каждого элемента.Это может использоваться, когда index
элементов, необходимых во время итерации. MDN Документы для справки
var letters = ["a","b","c"];
for (var i in letters)
{
console.log("Index : "+i, "Value : "+letters[i]);
}
for ... of loop: Этот цикл всегда перебирает значения массива.При перемещении по массиву переменная i
будет содержать значение элемента.Это можно использовать, если требуется только value
элементов в массиве. MDN Документы для справки
var letters = ["a","b","c"];
for (var i of letters)
{
console.log(i);
}
цикл forEach: Этот цикл выполняет функцию обратного вызова для каждого элемента при прохождении через обр.Параметры для обратного вызова: currentValue
, index
от currentValue, array
, для которого выполняется цикл. MDN Документы для справки
var letters = ["a","b","c"];
letters.forEach(function(value, index, arr){
console.log("Value : "+value, "Index : "+index, "Complete array : "+arr)
});
Проблема в вашем случае: Код работает нормально в соответствии с потоком.Поскольку у вас есть элементы массива, равные его индексу, вам стало трудно это понимать.
в цикле for ... in: index=0
дает digits[0]=0
, index=1
дает digits[1]=1
,и т. д.
в for ... цикла: index=0
(где переменная index
содержит значение digits[0]
), в компиляторе оператора console
это значение интерпретируется как index 0
Доступ к array d
.Следовательно, он возвращает значение digits[0]
и т. Д. Для всех элементов.