You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/05-data-types/06-iterable/article.md
-16Lines changed: 0 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,17 +28,10 @@ let range = {
28
28
29
29
برای اینکه شیء `range` را حلقهپذیر کنیم (و به این ترتیب بگذاریم `for..of` کار کند) ما نیاز داریم که یک متد به اسم `Symbol.iterator` را به شیء اضافه کنیم ( یک سمبل خاص درون ساخت که فقط برای این کار است).
30
30
31
-
<<<<<<< HEAD
32
31
1. زمانی که `for..of` شروع میشود، متد را یک بار صدا میزند (یا اگر پیدا نشود ارور میدهد). متد باید یک *حلقهزننده* را برگرداند -- شیءای که متد `next` را دارد.
33
32
2. همینطور رو به جلو، `for..of`*تنها با شیء برگردانده شده* کار میکند.
34
33
3. زمانی که `for..of` مقدار بعدی را نیاز دارد، روی آن شیء `next()` را صدا میزند.
35
34
4. نتیجه `next()` باید به شکل `{done: Boolean, value: any}` باشد که `done=true` به معنی پایان حلقهزدن است، در غیر این صورت `value` مقدار بعدی خواهد بود.
36
-
=======
37
-
1. When `for..of` starts, it calls that method once (or errors if not found). The method must return an *iterator* -- an object with the method `next`.
38
-
2. Onward, `for..of` works *only with that returned object*.
39
-
3. When `for..of` wants the next value, it calls `next()` on that object.
40
-
4. The result of `next()` must have the form `{done: Boolean, value: any}`, where `done=true` means that the loop is finished, otherwise `value` is the next value.
41
-
>>>>>>> 0f748275e20a81700c8514f22a7cc80c4422d09c
42
35
43
36
اینجا پیادهسازی کامل `range` را به همراه ملاحظات داریم:
44
37
@@ -51,13 +44,8 @@ let range = {
51
44
// 1. در ابتدا این متد صدا زده میشود for..of با صدازدن
52
45
range[Symbol.iterator] =function() {
53
46
54
-
<<<<<<<HEAD
55
47
// :این متد شیء حلقهزننده را برمیگرداند...
56
48
// 2. فقط با این حلقهزننده کار میکند، که از آن مقدار بعدی را درخواست میکند for..of ،همینطور رو به جلو
57
-
=======
58
-
// ...it returns the iterator object:
59
-
// 2. Onward, for..of works only with the iterator object below, asking it for next values
60
-
>>>>>>>0f748275e20a81700c8514f22a7cc80c4422d09c
61
49
return {
62
50
current:this.from,
63
51
last:this.to,
@@ -282,11 +270,7 @@ for (let char of str) {
282
270
alert(chars);
283
271
```
284
272
285
-
<<<<<<< HEAD
286
273
...اما این روش کوتاهتر است.
287
-
=======
288
-
...But it is shorter.
289
-
>>>>>>> 0f748275e20a81700c8514f22a7cc80c4422d09c
290
274
291
275
ما حتی میتوانیم یک `slice` که از جفتهای جایگیر آگاه است را روی آن بسازیم:
0 commit comments