أصبح مساعدو ITerator خط الأساس متاحًا حديثًا | بلوق | web.dev

أصبح مساعدو ITERATOR متاحًا حديثًا حديثًا
ابق منظمًا مع المجموعات
احفظ وتصنيف المحتوى بناءً على تفضيلاتك.
تم النشر: 1 مايو 2025
إذا كتبت JavaScript ، فإن التكرار هو شيء تقوم به كثيرًا. أنت إما تكتب حلقات للعمل مع المصفوفات ، أو استخدام أساليب البرمجة الوظيفية مثل map
و filter
وغيرها من الطرق المماثلة لمعالجة جميع أنواع البيانات.
ومع ذلك ، فإن إحدى النقاط الشائكة مع استخدام هذه الأساليب هي أنها متوفرة فقط في المصفوفات. إذا كنت ترغب في استخدامها على ibrability ، فيجب عليك تحويلها إلى صفيف ، ثم اتصل بالطريقة التي تحتاجها. يمكن أن يكون هذا مضيعة ، أو في الحالات التي يمثلها ITERBLE تحتوي على مجموعة بيانات لا حصر لها باستخدام وظائف المولد ، فليس من الممكن. ومع ذلك ، والآن بعد أن أصبح مساعدو Iterator متاحًا حديثًا ، تتوفر هذه القدرة في النهاية عبر المتصفحات.
كيف يعمل مساعدو التكرار؟
يتعرض مساعدو التكرار من خلال تحديد طرق جديدة على Iterator
أشياء prototype
. تتماشى هذه الطرق مع العديد من طرق البرمجة الوظيفية التي تستخدمها لاستخدامها ، مثل map
و filter
و reduce
، وغيرها من الطرق المماثلة.
على سبيل المثال ، يمكنك استخدام مساعد Iterator على 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);
}
في مقتطف الرمز السابق ، طريقة مساعد Iterator 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);
على وجه الخصوص ، يعد مقتطف الرمز السابق مثالًا على شيء لن يكون ممكنًا بدون مساعدي التكرار ، لأن عدد العوامل المصنوعات لا حصر لها ، وليس شيئًا يمكنك تحويله إلى صفيف خلاف ذلك!
اعتمادًا على وضعك ، يتمتع مساعدو التكرار بالكثير من الإمكانات – وهي متاحة لكل من هذه الطرق الرائعة:
إمكانيات حالات استخدام المساعد التكراري واسعة ، ويمكن أن توفر دفعة كبيرة في بيئة العمل المطورين. الآن وبعد أن يكون خط الأساس متاحًا حديثًا ، يجب أن يكون لديك ثقة متزايدة بمرور الوقت بحيث يمكنك استخدامها دون خوف من مشاكل التوافق. لمزيد من المعلومات ، تحقق من الموارد التالية: