JavaScript Iterables

در جاوا اسکریپت، Iterable (قابل تکرار) به شیءای گفته میشود که میتوان آن را با استفاده از حلقه for...of
یا هر روشی که از Iterable ها استفاده میکند (مثل Array.from()
یا عملگر spread) تکرار کرد.
برای اینکه یک شیء به عنوان Iterable شناخته شود، باید متد Symbol.iterator
را پیادهسازی کند، که یک iterator (تکرارگر) را باز میگرداند. یک iterator شیءای است که با هر بار فراخوانی متد next()
، مقدار بعدی در دنباله را برمیگرداند.
در اینجا مثالی از یک Iterable آورده شده است:
const myIterable = {
[Symbol.iterator]() {
let step = 0;
const values = [‘a’, ‘b’, ‘c’];
return {
next() {
if (step < values.length) {
return { value: values[step++], done: false };
}
return { value: undefined, done: true };
}
};
}
};
for (const value of myIterable) {
console.log(value); // خروجی: a, b, c
}
در این مثال:
myIterable
شیءای است که متدSymbol.iterator
را پیادهسازی کرده است.- متد
next()
برای هر تکرار فراخوانی میشود و شیءای با دو ویژگیvalue
وdone
برمیگرداند.value
مقداری است که در تکرار جاری برمیگردد.done
مشخص میکند که آیا تکرار تمام شده است یا نه.
Iterable های رایج در جاوا اسکریپت:
- آرایهها (Arrays)
- رشتهها (Strings)
- مپها (Maps)
- ستها (Sets)
مثالی از یک آرایه:
const array = [1, 2, 3];
for (const num of array) {
console.log(num); // خروجی: 1, 2, 3
}
تبدیل به Iterable:
شما میتوانید از Array.from()
، عملگر spread یا for...of
برای تبدیل اشیاء غیر Iterable به Iterable استفاده کنید.
const set = new Set([1, 2, 3]);
console.log([…set]); // خروجی: [1, 2, 3]
const str = “Hello”;
console.log(Array.from(str)); // خروجی: [‘H’, ‘e’, ‘l’, ‘l’, ‘o’]
به طور خلاصه، Iterable ها در جاوا اسکریپت ابزاری قدرتمند برای کار با دنبالههای مقادیر هستند و میتوانند برای نیازهای خاص سفارشیسازی شوند.
دیدگاهتان را بنویسید