Вам нужно пройти через набор чисел, список имен или что-то еще? Чтобы получить каждый элемент массива (или каждую пару ключ-значение из объекта), вы можете использовать цикл for.
Изучая, как перебирать массив, вы снова и снова будете сталкиваться с этим базовым шаблоном:

Итак, что же это за таинственный i? Ну, это просто переменная. Вы можете поместить туда любое слово или букву, если это сделает его более понятным, от x до чизкейк. Вот почему вам нужно, чтобы let в вашем цикле for (также это не должно быть let, это может быть var или const).
Вы объявляете эту переменную, в данном случае i, эквивалентной 0. Вы также говорите, что iвсегда меньше длины массива (по которому вы выполняете итерацию) и, наконец, что вы хотите увеличивайтеiна 1 каждый раз.
Цикл For в действии
Давайте посмотрим на пример! (прочитайте все о том, как это работает, в закомментированных частях. У вас есть проблема: пожалуйста, создайте функцию, которая принимает массив, а затем возвращает новый массив, содержащий все нечетные числа.
let oddNum = function(array){
//create a new array to push the odd numbers into
let oddnumbers = []
//iterate through the original array using a for-loop
for(let i = 0; i < array.length; i++){
//array[i] here means the original array at index i. So we are checking if the array at index i is NOT divisible by 0 without a remainder. If it is not, then we know for sure it is an odd number
if (array[i] % 2 !== 0){
//once we confirmed that it is an odd number, we can push it into the new array
oddnumbers.push(array[i])
}
}
//we can return our new array
return oddnumbers;
}
//here, we have the array that acts as the arguement we are passing into our function. It can be any array with numbers.
let numbersarray = [1,2,3,4,5,6,7,8,9,10]
//we call our function, and print it out
console.log(oddNum(numbersarray))
//our result for this particular problem shoud be [1,3,3,7,9] printed to the console.
Как перебрать массив в обратном порядке?
Итак, что, если бы у нас была проблема, описанная выше, но она читалась бы так: Пожалуйста, создайте функцию, которая принимает массив, а затем возвращает новый массив, содержащий все нечетные числа в обратном порядке.
let oddNum = function(array){
let oddnumbers = []
//time to loop through the array again.
//This time, we are looping through backwords
//with the starting point being array.length-1.
for(let i = array.length-1 ; i > 0; i--){
if (array[i] % 2 !== 0){
oddnumbers.push(array[i])
}
}
return oddnumbers;
}
.
let numbersarray = [1,2,3,4,5,6,7,8,9,10]
console.log(oddNum(numbersarray))
//our result for this particular problem shoud be [9,7,5,3] printed to the console.
В этом примере важно отметить тот факт, что мы используем array.length-1. Почему это? Ну, когда мы используем свойство .length, мы фактически получаем количество всех элементов в массиве. Это, однако, не учитывает, что мы начинаем все индексирование с 0. Поэтому, чтобы мы могли пройтись по индексам в обратном порядке, не столкнувшись с неопределенным в конце, когда мы нажмем 0, нам нужно приспособиться к этому, используя -1.
Как работают вложенные циклы?
Вложенные циклы могут помочь вам углубиться в свои массивы или работать с двумерными массивами.
Здесь мы перебираем двумерный массив с одним циклом for:
let candy = [["chocolates", "caramels"], ["hard candy", "sugar free"], ["gum", "mints", "breath strips"]]
let candyFunc = function(array){
for (let i = 0; i < array.length; i++){
console.log(array[i])
}
}
candyFunc(candy)
это приведет к этой печати на терминал:

Это элементы внешнего массива.
Затем мы можем пройтись по тому же массиву двумя циклами:
let candy = [["chocolates", "caramels"], ["hard candy", "sugar free"], ["gum", "mints", "breath strips"]]
let candyFunc = function(array){
for (let i = 0; i < array.length; i++){
let innerelements = array[i]
for (let j = 0; j < innerelements.length; j++)
console.log(innerelements[j])
}
}
candyFunc(candy)

Выше вы можете увидеть, что выводят два цикла for. Это элементы внутренних массивов внутри массива «конфеты». Используя вложенные циклы, вы можете получить доступ к строкам или массивам внутри внешнего массива.

Небольшой взгляд в будущее циклов For-Loop:
Когда вы действительно познакомитесь с этим циклом for, вы получите возможность использовать циклы for, где все происходит «под капотом»:
for(let element in array){
console.log(i)
}
Это даст вам тот же эффект, что и использование ручного цикла for. Небольшой совет: поэкспериментируйте: что произойдет, если вы используете of вместо in?
Если вы хотите узнать больше об основах, ознакомьтесь с основами Функций JavaScript.
Если вы хотите узнать о Fat Arrow Functions, нажмите здесь.