أنترنت

أصبح مساعدو 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);

على وجه الخصوص ، يعد مقتطف الرمز السابق مثالًا على شيء لن يكون ممكنًا بدون مساعدي التكرار ، لأن عدد العوامل المصنوعات لا حصر لها ، وليس شيئًا يمكنك تحويله إلى صفيف خلاف ذلك!

اعتمادًا على وضعك ، يتمتع مساعدو التكرار بالكثير من الإمكانات – وهي متاحة لكل من هذه الطرق الرائعة:

إمكانيات حالات استخدام المساعد التكراري واسعة ، ويمكن أن توفر دفعة كبيرة في بيئة العمل المطورين. الآن وبعد أن يكون خط الأساس متاحًا حديثًا ، يجب أن يكون لديك ثقة متزايدة بمرور الوقت بحيث يمكنك استخدامها دون خوف من مشاكل التوافق. لمزيد من المعلومات ، تحقق من الموارد التالية:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى