JavaRush /Курсы /Модуль 1: Web Core /Циклы for...of и for…in

Циклы for...of и for…in

Модуль 1: Web Core
17 уровень , 8 лекция
Открыта

9.1 Цикл for...of

Циклы for...of и for...in предоставляют удобные способы итерации по элементам массивов и свойствам объектов в JavaScript. Оба цикла используются для перебора, но применяются в разных ситуациях.

Цикл for...of

Цикл for...of предназначен для итерации по итерируемым объектам (таким как массивы, строки, объекты Set и Map). Он позволяет легко перебирать элементы коллекции.

Синтаксис:

    
      for (let variable of iterable) {
        // код, который выполнится для каждого элемента
      }
    
  

Пример:

JavaScript
    
      let array = [1, 2, 3, 4, 5];

      for (let value of array) {
        console.log(value);
      }

      // Вывод: 1 2 3 4 5
    
  

Применение для массивов

Цикл for...of удобен для перебора элементов массива, так как он предоставляет доступ к значению каждого элемента:

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

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

      // Вывод: apple banana cherry
    
  

Применение для строк

Цикл for...of также можно использовать для итерации по символам строки:

JavaScript
    
      let str = 'Hello';

      for (let char of str) {
        console.log(char);
      }

      // Вывод: H e l l o
    
  

9.2 Цикл for...in

Цикл for...in используется для итерации по перечисляемым свойствам объекта. Он выполняет итерацию по ключу каждого свойства.

Синтаксис:

    
      for (let key in object {
        // код, который выполнится для каждого элемента
      }
    
  

Пример:

JavaScript
    
      let obj = {a: 1, b: 2, c: 3};

      for (let key in obj) {
        console.log(key + ': ' + obj[key]);
      }

      // Вывод: a: 1 b: 2 c: 3
    
  

Применение для объектов

Цикл for...in удобен для перебора свойств объекта, так как он предоставляет доступ к ключу и значению каждого свойства:

JavaScript
    
      let user = {
        name: 'John',
        age: 30,
        isAdmin: true
      };

      for (let key in user) {
        console.log(key + ': ' + user[key]);
      }

      // Вывод: name: John age: 30 isAdmin: true
    
  

Применение для массивов

Цикл for...in может использоваться для итерации по индексам массива, но это не рекомендуется, так как он итерирует по всем перечисляемым свойствам, включая свойства из прототипа:

JavaScript
    
      let array = ['apple', 'banana', 'cherry'];

      for (let index in array) {
        console.log(index + ': ' + array[index]);
      }

      // Вывод: 0: apple 1: banana 2: cherry
    
  

9.3 Сравнение циклов for...of и for...in

Сравнение циклов for...of и for...in:

Описание for...of for...in
Применение Итерируемые объекты (массивы, строки, Set, Map) Объекты
Особенности Итерирует по значениям Итерирует по ключам
Использование с массивами for (let value of array) { ... } for (let index in array) { ... }
Использование с объектами for (let value of Object.values(obj)) { ... } for (let key in obj) { ... }
1
Задача
Модуль 1: Web Core, 17 уровень, 8 лекция
Недоступна
Перебор массива
Перебор массива
1
Задача
Модуль 1: Web Core, 17 уровень, 8 лекция
Недоступна
Перебор свойств
Перебор свойств
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No Name Уровень 16
1 июня 2025
Чет рано в этом курсе начали это проходить
Виктор Рябов Уровень 21
3 марта 2025
как понял: Оба оператора for..of и for..in выполняют итерацию (перебор элементов) по спискам. Однако значения, по которым выполняется итерация (перебор), различны: цикл for..in возвращает список ключей для объекта, по которому выполняется итерация, или если простыми словами - их порядковый номер. Цикл так же возвращает свойства объекта. Тогда как for..of возвращает список значений числовых свойств объекта, по которому выполняется итерация, т.е. значения элементов.

let list = ["ййй", "ццц", "ууу"];
for (let i in list) {
  console.log(i); // "0", "1", "2", - проходится по списку и возвращает номера элементов в списке
}

for (let i of list) {
  console.log(i); // ййй, ццц, ууу - проходится по списку и возвращает значения элементов списка
}
https://www.typescriptlang.org/docs/handbook/iterators-and-generators.html это дока по TS, но уместно и для JS