For of: понимание цикла for в JavaScript
For...of это цикл, который используется для обхода итерируемых объектов, таких как массивы, строки, а также другие объекты, которые имеют метод Symbol.iterator().
Использование этого цикла позволяет упростить и сократить код для обхода элементов массива или строки. Пример использования цикла for...of для обхода элементов массива:
const arr = [1, 2, 3, 4, 5];
for(let el of arr) {
console.log(el);
}
// Результат вывода в консоль:
// 1
// 2
// 3
// 4
// 5
В данном примере мы создали массив и использовали цикл for...of для вывода каждого элемента массива в консоль.
Также цикл for...of может быть использован для перебора символов строки:
const str = "Hello World";
for(let char of str) {
console.log(char);
}
// Результат вывода в консоль:
// "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d"
Как видно из примера выше, цикл for...of пройдет по каждому символу строки и выведет его в консоль.
Для других типов объектов можно использовать метод Symbol.iterator() для их итерации, например, для объектов:
const obj = { a: 1, b: 2, c: 3 };
obj[Symbol.iterator] = function*() {
for(let key in this) {
yield this[key];
}
};
for(let val of obj) {
console.log(val);
}
// Результат вывода в консоль:
// 1
// 2
// 3
В данном примере мы определили метод Symbol.iterator() для объекта, который позволяет перебирать значения свойств объекта. Метод Symbol.iterator() возвращает генератор, который возвращает значения свойств объекта в цикле for...of.
В итоге, использование цикла for...of позволяет более просто и компактно записывать код для обхода итерируемых объектов и значительно упрощает их итерацию.