Skip to content

Commit 4ec9f35

Browse files
committed
merging all conflicts
2 parents 81f66f1 + 0f74827 commit 4ec9f35

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

1-js/05-data-types/06-iterable/article.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,17 @@ let range = {
2828

2929
برای اینکه شیء `range` را حلقه‌پذیر کنیم (و به این ترتیب بگذاریم `for..of` کار کند) ما نیاز داریم که یک متد به اسم `Symbol.iterator` را به شیء اضافه کنیم ( یک سمبل خاص درون ساخت که فقط برای این کار است).
3030

31+
<<<<<<< HEAD
3132
1. زمانی که `for..of` شروع می‌شود، متد را یک بار صدا می‌زند (یا اگر پیدا نشود ارور می‌دهد). متد باید یک *حلقه‌زننده* را برگرداند -- شیءای که متد `next` را دارد.
3233
2. همینطور رو به جلو، `for..of` *تنها با شیء برگردانده شده* کار می‌کند.
3334
3. زمانی که `for..of` مقدار بعدی را نیاز دارد، روی آن شیء `next()` را صدا می‌زند.
3435
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
3542
3643
اینجا پیاده‌سازی کامل `range` را به همراه ملاحظات داریم:
3744

@@ -44,11 +51,16 @@ let range = {
4451
// 1. در ابتدا این متد صدا زده می‌شود for..of با صدازدن
4552
range[Symbol.iterator] = function() {
4653

54+
<<<<<<< HEAD
4755
// :این متد شیء حلقه‌زننده را برمی‌گرداند...
4856
// 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
4961
return {
5062
current: this.from,
51-
last: this.to,
63+
last: this.to,
5264

5365
// 3. فراخوانی می‌شود for..of در هر دور حلقه توسط next()
5466
next() {
@@ -270,7 +282,11 @@ for (let char of str) {
270282
alert(chars);
271283
```
272284

285+
<<<<<<< HEAD
273286
...اما این روش کوتاه‌تر است.
287+
=======
288+
...But it is shorter.
289+
>>>>>>> 0f748275e20a81700c8514f22a7cc80c4422d09c
274290
275291
ما حتی می‌توانیم یک `slice` که از جفت‌های جایگیر آگاه است را روی آن بسازیم:
276292

0 commit comments

Comments
 (0)