freeCodeCamp/guide/russian/javascript/es6/for-of/index.md

99 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: for-of loop
localeTitle: for-of loop
---
## for-of Loop
for-of loop может использоваться для итерации по вещам, которые не являются массивами, но являются итерабельными, как коллекция DOM, строка, множество, аргументы или карта.
```javascript
const fruits = ['Orange','Apple','Grapes','Banana'];
for (const fruit of fruits)
{
console.log(fruit);
}
```
Вышеприведенный фрагмент вернет нам элементы в массиве выше.
## for-of loop в знании индекса
Что делать, если мы хотим знать индекс каждого элемента тоже. В этом случае мы можем перебирать fruit.entries (), который дает нам ArrayIterator.
```javascript
for (const fruit of fruits.entries())
{
console.log(fruit);
}
```
В приведенном выше фрагменте фрукты будут массивом с двумя предметами. 0-й элемент будет содержать индекс, а первый элемент будет содержать фактическое имя фрукта. Выход будет выглядеть так:
```
[0, "Orange"]
[1, "Apple"]
[2, "Grapes"]
[3, "Banana"]
```
Мы можем еще больше разрушить плоды, как показано ниже:
```javascript
for (const [index,fruit] of fruits.entries())
{
console.log(index,fruit);
}
```
## for-of loop в итерации по неизвестному числу аргументов
for-of loop очень полезен при итерации по неизвестному числу аргументов функции.
Предположим, мы хотим добавить числа, которые передаются функции, а количество аргументов не фиксировано.
«arguments» - это специальное ключевое слово в javascript, которое дает нам массив Array-ish (not array) и дает нам все аргументы.
```javascript
function addNumbers()
{
let sum = 0;
for (const num of arguments)
sum+=num;
return sum;
}
addNumbers(1, 2, 3, 4, 5); // 15
```
Здесь аргументы не являются истинным массивом, но мы можем перебирать его с помощью цикла for-of.
## for-of loop для итерации по строке
Мы можем использовать for-of loop для итерации по строке, чтобы дать нам символ по характеру строки.
```javascript
const name = 'John Doe';
for (const char of name)
console.log(char);
```
что приводит к следующему результату: символы 'J', 'o', 'h', 'n', '', 'D', 'o', 'e'
## for-of loop для итерации по набору DOM
Коллекции DOM не являются истинным типом массива. Они обычно являются NodeList для большинства браузеров. Если мы создадим несколько абзацев и хотим перебрать их, чтобы назначить какое-либо событие на каждом из абзацев, мы можем использовать цикл for-of.
```javascript
const paragraphs = document.querySelectorAll('p');
```
Здесь абзацы - это NodeList, который может быть повторен с использованием цикла for-of.
```javascript
for (const para of paragraphs)
{
console.log(para);
// We can add event listeners to each para here
}
```