تاریخ انتشار: 1 می 2025
اگر جاوا اسکریپت می نویسید، تکرار کاری است که زیاد انجام می دهید. شما یا حلقه هایی برای کار با آرایه ها می نویسید، یا از روش های برنامه نویسی کاربردی مانند map
، filter
و سایر روش های مشابه برای پردازش انواع داده ها استفاده می کنید.
با این حال، یک نکته مهم در استفاده از این روش ها این است که آنها فقط در آرایه ها در دسترس هستند. اگر میخواهید از آنها در یک تکرار شونده استفاده کنید، باید آن را به یک آرایه تبدیل کنید و سپس روش مورد نیاز خود را فراخوانی کنید. این ممکن است بیهوده باشد، یا در مواردی که قابلیت تعامل شامل مجموعه داده های بی نهایت با استفاده از توابع مولد باشد، امکان پذیر نیست. با این حال، اکنون که کمککنندههای تکرارکننده بهتازگی در دسترس قرار گرفتهاند، این توانایی در نهایت در بین مرورگرها در دسترس است.
کمک کننده های تکرارکننده چ��ونه کار می کنند؟
کمک کننده های Iterator با تعریف روش های جدید بر روی prototype
شی Iterator
در معرض دید قرار می گیرند. این روشها با بسیاری از روشهای برنامهنویسی کاربردی که شما از آنها استفاده میکنید، مانند map
، filter
، reduce
و سایر روشهای مشابه، همسو هستند.
برای مثال، میتوانید از یک کمککننده تکرارکننده در روش filter
استفاده کنید تا آیتمهای فهرست را بر اساس محتویات ویژگی innerText
آنها برای مجموعهای از گرههای DOM فیلتر کنید، که بعداً میتوانید در یک حلقه for
استفاده کنید:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
در قطعه کد قبلی، از روش کمکی تکرارکننده برای filter
برای تکرار روی تمام عناصر <li>
در یک عنصر <ul>
خاص استفاده میشود. معیار فیلتر این است که محتوای متنی هر عنصر باید دارای زیررشته ای از "kiwi"
باشد.
کمک کننده های Iterator همچنین می توانند با توابع ژنراتور استفاده شوند. در این مثال، یک تابع مولد که فاکتوریل ها را محاسبه می کند، اما از کمک کننده تکرار کننده برای فیلتر کردن مقادیری که بر 8 قابل تقسیم هستند استفاده می کند و پنج مقدار فیلتر شده اول را در کنسول ثبت می کند:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
به طور خاص، قطعه کد قبلی نمونهای از چیزی است که با کمککنندههای تکرارکننده امکانپذیر نیست، زیرا تعداد فاکتوریلها بینهایت است و چیزی نیست که در غیر این صورت بتوانید به آرایه تبدیل کنید!
بسته به موقعیت شما، کمککنندههای تکرارکننده پتانسیل زیادی دارند—و برای هر یک از این روشهای تکرارپذیر در دسترس هستند:
امکانات برای موارد استفاده کمکی تکرار کننده بسیار زیاد است و می تواند تقویت قابل توجهی در ارگونومی توسعه دهندگان ایجاد کند. اکنون که آنها به تازگی در دسترس هستند، باید به مرور زمان اطمینان بیشتری داشته باشید که می توانید بدون ترس از مشکلات سازگاری از آنها استفاده کنید. برای اطلاعات بیشتر، منابع زیر را بررسی کنید:
،تاریخ انتشار: 1 می 2025
اگر جاوا اسکریپت می نویسید، تکرار کاری است که زیاد انجام می دهید. شما یا حلقه هایی برای کار با آرایه ها می نویسید، یا از روش های برنامه نویسی کاربردی مانند map
، filter
و سایر روش های مشابه برای پردازش انواع داده ها استفاده می کنید.
با این حال، یک نکته مهم در استفاده از این روش ها این است که آنها فقط در آرایه ها در دسترس هستند. اگر میخواهید از آنها در یک تکرار شونده استفاده کنید، باید آن را به یک آرایه تبدیل کنید و سپس روش مورد نیاز خود را فراخوانی کنید. این ممکن است بیهوده باشد، یا در مواردی که قابلیت تعامل شامل مجموعه داده های بی نهایت با استفاده از توابع مولد باشد، امکان پذیر نیست. با این حال، اکنون که کمککنندههای تکرارکننده بهتازگی در دسترس قرار گرفتهاند، این توانایی در نهایت در بین مرورگرها در دسترس است.
کمک کننده های تکرارکننده چگونه کار می کنند؟
کمک کننده های Iterator با تعریف روش های جدید بر روی prototype
شی Iterator
در معرض دید قرار می گیرند. این روشها با بسیاری از روشهای برنامهنویسی کاربردی که شما از آنها استفاده میکنید، مانند map
، filter
، reduce
و سایر روشهای مشابه، همسو هستند.
برای مثال، میتوانید از یک کمککننده تکرارکننده در روش filter
استفاده کنید تا آیتمهای فهرست را بر اساس محتویات ویژگی innerText
آنها برای مجموعهای از گرههای DOM فیلتر کنید، که بعداً میتوانید در یک حلقه for
استفاده کنید:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
در قطعه کد قبلی، از روش کمکی تکرارکننده برای filter
برای تکرار روی تمام عناصر <li>
در یک عنصر <ul>
خاص استفاده میشود. معیار فیلتر این است که محتوای متنی هر عنصر باید دارای زیررشته ای از "kiwi"
باشد.
کمک کننده های Iterator همچنین می توانند با توابع ژنراتور استفاده شوند. در این مثال، یک تابع مولد که فاکتوریل ها را محاسبه می کند، اما از کمک کننده تکرار کننده برای فیلتر کردن مقادیری که بر 8 قابل تقسیم هستند استفاده می کند و پنج مقدار فیلتر شده اول را در کنسول ثبت می کند:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
به طور خاص، قطعه کد قبلی نمونهای از چیزی است که با کمککنندههای تکرارکننده امکانپذیر نیست، زیرا تعداد فاکتوریلها بینهایت است و چیزی نیست که در غیر این صورت بتوانید به آرایه تبدیل کنید!
بسته به موقعیت شما، کمککنندههای تکرارکننده پتانسیل زیادی دارند—و برای هر یک از این روشهای تکرارپذیر در دسترس هستند:
امکانات برای موارد استفاده کمکی تکرار کننده بسیار زیاد است و می تواند تقویت قابل توجهی در ارگونومی توسعه دهندگان ایجاد کند. اکنون که آنها به تازگی در دسترس هستند، باید به مرور زمان اطمینان بیشتری داشته باشید که می توانید بدون ترس از مشکلات سازگاری از آنها استفاده کنید. برای اطلاعات بیشتر، منابع زیر را بررسی کنید:
،تاریخ انتشار: 1 می 2025
اگر جاوا اسکریپت می نویسید، تکرار کاری است که زیاد انجام می دهید. شما یا حلقه هایی برای کار با آرایه ها می نویسید، یا از روش های برنامه نویسی کاربردی مانند map
، filter
و سایر روش های مشابه برای پردازش انواع داده ها استفاده می کنید.
با این حال، یک نکته مهم در استفاده از این روش ها این است که آنها فقط در آرایه ها در دسترس هستند. اگر میخواهید از آنها در یک تکرار شونده استفاده کنید، باید آن را به یک آرایه تبدیل کنید و سپس روش مورد نیاز خود را فراخوانی کنید. این ممکن است بیهوده باشد، یا در مواردی که قابلیت تعامل شامل مجموعه داده های بی نهایت با استفاده از توابع مولد باشد، امکان پذیر نیست. با این حال، اکنون که کمککنندههای تکرارکننده بهتازگی در دسترس قرار گرفتهاند، این توانایی در نهایت در بین مرورگرها در دسترس است.
کمک کننده های تکرارکننده چگونه کار می کنند؟
کمک کننده های Iterator با تعریف روش های جدید بر روی prototype
شی Iterator
در معرض دید قرار می گیرند. این روشها با بسیاری از روشهای برنامهنویسی کاربردی که شما از آنها استفاده میکنید، مانند map
، filter
، reduce
و سایر روشهای مشابه، همسو هستند.
برای مثال، میتوانید از یک کمککننده تکرارکننده در روش filter
استفاده کنید تا آیتمهای فهرست را بر اساس محتویات ویژگی innerText
آنها برای مجموعهای از گرههای DOM فیلتر کنید، که بعداً میتوانید در یک حلقه for
استفاده کنید:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
در قطعه کد قبلی، از روش کمکی تکرارکننده برای filter
برای تکرار روی تمام عناصر <li>
در یک عنصر <ul>
خاص استفاده میشود. معیار فیلتر این است که محتوای متنی ��ر ��نصر باید ��ا��ای ��یررشته ای از "kiwi"
باشد.
کمک کننده های Iterator همچنین می توانند با توابع ژنراتور استفاده شوند. در این مثال، یک تابع مولد که فاکتوریل ها را محاسبه می کند، اما از کمک کننده تکرار کننده برای فیلتر کردن مقادیری که بر 8 قابل تقسیم هستند استفاده می کند و پنج مقدار فیلتر شده اول را در کنسول ثبت می کند:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
به طور خاص، قطعه کد قبلی نمونهای از چیزی است که با کمککنندههای تکرارکننده امکانپذیر نیست، زیرا تعداد فاکتوریلها بینهایت است و چیزی نیست که در غیر این صورت بتوانید به آرایه تبدیل کنید!
بسته به موقعیت شما، کمککنندههای تکرارکننده پتانسیل زیادی دارند—و برای هر یک از این روشهای تکرارپذیر در دسترس هستند:
امکانات برای موارد استفاده کمکی تکرار کننده بسیار زیاد است و می تواند تقویت قابل توجهی در ارگونومی توسعه دهندگان ایجاد کند. اکنون که آنها به تازگی در دسترس هستند، باید به مرور زمان اطمینان بیشتری داشته باشید که می توانید بدون ترس از مشکلات سازگاری از آنها استفاده کنید. برای اطلاعات بیشتر، منابع زیر را بررسی کنید:
،تاریخ انتشار: 1 می 2025
اگر جاوا اسکریپت می نویسید، تکرار کاری است که زیاد انجام می دهید. شما یا ح��قه هایی برای کار با آرایه ها می نویسید، یا از روش های برنامه نویسی کاربردی مانند map
، filter
و سایر روش های مشابه برای پردازش انواع داده ها استفاده می کنید.
با این حال، یک نکته مهم در استفاده از این روش ها این است که آنها فقط در آرایه ها در دسترس هستند. اگر میخواهید از آنها در یک تکرار شونده استفاده کنید، باید آن را به یک آرایه تبدیل کنید و سپس روش مورد نیاز خود را فراخوانی کنید. این ممکن است بیهوده باشد، یا در مواردی که قابلیت تعامل شامل مجموعه داده های بی نهایت با استفاده از توابع مولد باشد، امکان پذیر نیست. با این حال، اکنون که کمککنندههای تکرارکننده بهتازگی در دسترس قرار گرفتهاند، این توانایی در نهایت در بین مرورگرها در دسترس است.
کمک کننده های تکرارکننده چگونه کار می کنند؟
کمک کننده های Iterator با تعریف روش های جدید بر روی prototype
شی Iterator
در معرض دید قرار می گیرند. این روشها با بسیاری از روشهای برنامهنویسی کاربردی که شما از آنها استفاده میکنید، مانند map
، filter
، reduce
و سایر روشهای مشابه، همسو هستند.
برای مثال، میتوانید از یک کمککننده تکرارکننده در روش filter
استفاده کنید تا آیتمهای فهرست را بر اساس محتویات ویژگی innerText
آنها برای مجموعهای از گرههای DOM فیلتر کنید، که بعداً میتوانید در یک حلقه for
استفاده کنید:
const posts = document.querySelectorAll("ul#specific-list > li")
.values()
.filter(item => item.textContent.includes("kiwi"));
// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
console.log(post.textContent);
}
در قطعه کد قبلی، از روش کمکی تکرارکننده برای filter
برای تکرار روی تمام عناصر <li>
در یک عنصر <ul>
خاص استفاده میشود. معیار فیلتر این است که محتوای متنی هر عنصر باید دارای زیررشته ای از "kiwi"
باشد.
کمک کننده های Iterator همچنین می توانند با توابع ژنراتور استفاده شوند. در این مثال، یک تابع مولد که فاکتوریل ها را محاسبه می کند، اما از کمک کننده تکرار کننده برای فیلتر کردن مقادیری که بر 8 قابل تقسیم هستند استفاده می کند و پنج مقدار فیلتر شده اول را در کنسول ثبت می کند:
function* factorials (n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
const filteredFactorials = factorials(128).filter(x => x % 8 === 0);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
به طور خاص، قطعه کد قبلی نمونهای از چیزی است که با کمککنندههای تکرارکننده امکانپذیر نیست، زیرا تعداد فاکتوریلها بینهایت است و چیزی نیست که در غیر این صورت بتوانید به آرایه تبدیل کنید!
بسته به موقعیت شما، کمککنندههای تکرارکننده پتانسیل زیادی دارند��و برای هر یک از این روشهای تکرارپذیر در دسترس هستند:
امکانات برای موارد استفاده کمکی تکرار کننده بسیار زیاد است و می تواند تقویت قابل توجهی در ارگونومی توسعه دهندگان ایجاد کند. اکنون که آنها به تازگی در دسترس هستند، باید به مرور زمان اطمینان بیشتری داشته باشید که می توانید بدون ترس از مشکلات سازگاری از آنها استفاده کنید. برای اطلاعات بیشتر، منابع زیر را بررسی کنید: