9.1 Цикл for...of
Циклы for...of и for...in предоставляют удобные способы итерации по элементам массивов и свойствам объектов в JavaScript. Оба цикла используются для перебора, но применяются в разных ситуациях.
Цикл for...of
Цикл for...of предназначен для итерации по итерируемым объектам (таким как массивы, строки, объекты Set и Map). Он позволяет легко перебирать элементы коллекции.
Синтаксис:
for (let variable of iterable) {
// код, который выполнится для каждого элемента
}
Пример:
let array = [1, 2, 3, 4, 5];
for (let value of array) {
console.log(value);
}
// Вывод: 1 2 3 4 5
Применение для массивов
Цикл for...of удобен для перебора элементов массива, так как он предоставляет доступ к значению каждого элемента:
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
// Вывод: apple banana cherry
Применение для строк
Цикл for...of также можно использовать для итерации по символам строки:
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 {
// код, который выполнится для каждого элемента
}
Пример:
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 удобен для перебора свойств объекта, так как он предоставляет доступ к ключу и значению каждого свойства:
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 может использоваться для итерации по индексам массива, но это не рекомендуется, так как он итерирует по всем перечисляемым свойствам, включая свойства из прототипа:
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) { ... } |
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ