RU(Русский) Translate

Добро пожаловать, стремящиеся программисты! Сегодня мы погрузимся в одну из самых полезных функций JavaScript: цикл for...of. Как ваш доброжелательный сосед по компьютерной науке, я рад помочь вам в этом путешествии. Так что возьмите любимый напиток, устройтесь поудобнее и отправляйтесь в это кодирование приключение вместе с нами!

Javascript - For...of

Что такое цикл for...of?

Прежде чем мы углубимся в детали, давайте поймем, что такое цикл for...of. Представьте, что у вас есть корзина с яркими фруктами, и вы хотите осмотреть каждый фрукт по одному. Цикл for...of похож на вашего полезного помощника, который берет каждый фрукт из корзины и передает его вам по одному, пока корзина не опустеет.

В программировании цикл for...of позволяет нам итерироваться (фancy слово для "пройти через") над итерируемыми объектами, такими как массивы, строки и другие структуры данных, о которых мы узнаем позже.

Синтаксис

Теперь давайте посмотрим, как мы пишем цикл for...of. Не волнуйтесь, если сначала это покажется странным - мы разберем это вместе!

for (variable of iterable) {
    // код для выполнения
}

Давайте разберем это:

  • for: Это ключевое слово говорит JavaScript, что мы начинаем цикл.
  • variable: Это то место, где мы будем хранить каждый элемент по мере прохождения итерируемого объекта.
  • of: Это ключевое слово делает этот цикл for...of.
  • iterable: Это объект, через который мы проходим (например, наша корзина фруктов).
  • Код внутри фигурных скобок {} - это то, что мы хотим сделать с каждым элементом.

Примеры

Пример 1: Цикл по массиву

Давайте начнем с простого примера. Мы создадим массив фруктов и напечатаем каждый из них.

let fruits = ['apple', 'banana', 'cherry', 'date'];

for (let fruit of fruits) {
    console.log(fruit);
}

Если вы запустите этот код, вы увидите:

apple
banana
cherry
date

Что здесь происходит? Наш цикл for...of берет каждый фрукт из массива fruits и хранит его в переменной fruit. Затем мы используем console.log() для печати каждого фрукта.

Пример 2: Цикл по строке

Знаете ли вы, что строки также итерируемы? Давайте напишем слово:

let word = 'Hello';

for (let letter of word) {
    console.log(letter);
}

Это выведет:

H
e
l
l
o

Каждый символ в строке treated как отдельный элемент, который мы можем проити. Круто, правда?

Пример 3: Использование for...of с числами

Теперь давайте перейдем к более практическим вещам. Представьте, что вы учитель (как я!) и хотите вычислить средний балл для класса:

let scores = [85, 92, 78, 95, 88];
let total = 0;
let count = 0;

for (let score of scores) {
    total += score;
    count++;
}

let average = total / count;
console.log(`Средний балл класса ${average}`);

Этот скрипт вычислит и выведет средний балл. Мы используем цикл for...of для суммирования всех баллов и подсчета их количества.

Пример 4: Выход из цикла

Иногда вы можете хотите停止 цикл до его окончания. Мы можем сделать это с помощью ключевого слова break. Давайте представим, что мы ищем определенный фрукт:

let fruits = ['apple', 'banana', 'cherry', 'date'];
let searchFor = 'cherry';

for (let fruit of fruits) {
    if (fruit === searchFor) {
        console.log(`Найден ${searchFor}!`);
        break;
    }
    console.log(`Проверяем ${fruit}...`);
}

Этот скрипт остановится, как только найдет 'cherry', не проверяя оставшиеся фрукты.

Пример 5: Пропуск элементов с continue

Что, если мы хотим пропустить某些 элементы? Мы можем использовать ключевое слово continue. Давайте напечатаем только фрукты, начинающиеся с 'a':

let fruits = ['apple', 'banana', 'apricot', 'cherry', 'avocado'];

for (let fruit of fruits) {
    if (!fruit.startsWith('a')) {
        continue;
    }
    console.log(fruit);
}

Это напечатает только 'apple', 'apricot' и 'avocado'.

Таблица методов

Вот удобная таблица методов, которые мы использовали в наших примерах:

Метод Описание Пример
console.log() Выводит данные в консоль console.log('Привет, мир!')
startsWith() Проверяет, начинается ли строка с указанных символов 'apple'.startsWith('a') // true
break Выход из цикла if (условие) break;
continue Перейти к следующей итерации цикла if (условие) continue;

Заключение

И вот мы добрались до конца, друзья! Мы прошли через страну циклов for...of, от простых массивов до строк, и даже научились выходить или пропускать элементы. Помните, что практика делает мастера, так что не бойтесь экспериментировать с этими концепциями.

За годы преподавания я понял, что лучший способ учиться - это делать. Так что у меня для вас есть маленькое домашнее задание: Попробуйте создать свои собственные циклы for...of с разными типами данных. Может быть, пройдитесь по своим любимым фильмам или именам друзей. Возможности безграничны!

Счастливого кодирования, и помните - в мире программирования каждый цикл - это возможность для открытия!

Credits: Image by storyset