Skip to content

Commit 7195bf0

Browse files
committed
Merge pull request iliakan#202 from nicksp/patch-4
ES2015 Iterators: Fixed typos
2 parents 880384f + 8eba72f commit 7195bf0

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

1-js/10-es-modern/9-iterator/article.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
let arr = [1, 2, 3]; // массив — пример итерируемого объекта
1919

20-
for(let value of arr) {
20+
for (let value of arr) {
2121
alert(value); // 1, затем 2, затем 3
2222
}
2323
```
@@ -28,7 +28,7 @@ for(let value of arr) {
2828
//+ run
2929
'use strict';
3030

31-
for(let char of "Привет") {
31+
for (let char of "Привет") {
3232
alert(char); // Выведет по одной букве: П, р, и, в, е, т
3333
}
3434
```
@@ -44,7 +44,7 @@ for(let char of "Привет") {
4444

4545
Допустим, у нас есть некий объект, который надо "умным способом" перебрать.
4646

47-
Например, `range` -- диапазон чисел от `from` до `to`, и мы хотим, чтобы `for(let num of range)` "перебирал", этот объект. При этом под перебором мы подразумеваем перечисление чисел от `from` до `to`.
47+
Например, `range` -- диапазон чисел от `from` до `to`, и мы хотим, чтобы `for (let num of range)` "перебирал" этот объект. При этом под перебором мы подразумеваем перечисление чисел от `from` до `to`.
4848

4949
Объект `range` без итератора:
5050

@@ -55,7 +55,7 @@ let range = {
5555
};
5656

5757
// хотим сделать перебор
58-
// for(let num of range) ...
58+
// for (let num of range) ...
5959
```
6060

6161
Для возможности использовать объект в `for..of` нужно создать в нём свойство с названием `Symbol.iterator` (системный символ).
@@ -64,7 +64,7 @@ let range = {
6464

6565
По стандарту у такого объекта должен быть метод `next()`, который при каждом вызове возвращает очередное значение и окончен ли перебор.
6666

67-
Так это выглядит в коде:
67+
В коде это выглядит следующим образом:
6868

6969
```js
7070
//+ run
@@ -81,7 +81,7 @@ range[Symbol.iterator] = function() {
8181
let current = this.from;
8282
let last = this.to;
8383

84-
// метод должен вернуть объект с next()
84+
// метод должен вернуть объект с методом next()
8585
return {
8686
next() {
8787
if (current <= last) {
@@ -112,14 +112,14 @@ for (let num of range) {
112112
<li>У итератора должен быть метод `next()`, который при каждом вызове возвращает объект со свойствами:
113113
<ul>
114114
<li>`value` -- очередное значение,
115-
<li>`done` -- равно `false`, если есть ещё значения, и `true` -- в конце.</li>
115+
<li>`done` -- равно `false` если есть ещё значения, и `true` -- в конце.</li>
116116
</ul>
117117
</li>
118118
</ul>
119119

120120
Конструкция `for..of` в начале своего выполнения автоматически вызывает `Symbol.iterator()`, получает итератор и далее вызывает метод `next()` до получения `done: true`. Такова внутренняя механика. Внешний код при переборе через `for..of` видит только значения.
121121

122-
Такое отделение функционала перебора от самого объекта даёт дополнительную гибкость, например, объект может возвращать разные итераторы в зависимости от своего настроения и времени суток. Однако, бывают ситуации, когда оно не нужно.
122+
Такое отделение функционала перебора от самого объекта даёт дополнительную гибкость. Например, объект может возвращать разные итераторы в зависимости от своего настроения и времени суток. Однако, бывают ситуации когда оно не нужно.
123123

124124
Если функционал по перебору (метод `next`) предоставляется самим объектом, то можно вернуть `this` в качестве итератора:
125125

@@ -200,7 +200,7 @@ alert( Math.max(...range) ); // 5 (*)
200200
let str = "Hello";
201201

202202
// Делает то же, что и
203-
// for(var letter of str) alert(letter);
203+
// for (var letter of str) alert(letter);
204204

205205
let iterator = str[Symbol.iterator]();
206206

@@ -217,7 +217,7 @@ while(true) {
217217

218218
<ul>
219219
<li>*Итератор* -- объект, предназначенный для перебора другого объекта.</li>
220-
<li>У итератора должен быть метод `next()`, возвращающий `{done: Boolean, value: any}`, где `value` -- очередное значение, а `done: true` в конце.</li>
220+
<li>У итератора должен быть метод `next()`, возвращающий объект `{done: Boolean, value: any}`, где `value` -- очередное значение, а `done: true` в конце.</li>
221221
<li>Метод `Symbol.iterator` предназначен для получения итератора из объекта. Цикл `for..of` делает это автоматически, но можно и вызвать его напрямую.</li>
222222
<li>В современном стандарте есть много мест, где вместо массива используются более абстрактные "итерируемые" (со свойством `Symbol.iterator`) объекты, например оператор spread `...`.</li>
223223
<li>Встроенные объекты, такие как массивы и строки, являются итерируемыми, в соответствии с описанным выше.</li>

0 commit comments

Comments
 (0)