انتقل إلى محتوى الدرس
الدرس 98
دورة جافا سكريبت

Object Iterables

في هذا الدرس سوف نتعرف علي iterables وهي الخاصة بأنشاء تكرارات علي ال Objects في لغة javaScript 

أقسام الدرس
4
الأمثلة
5
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
2,586
محتوى الدرس
في هذا الدرس 4تصفّح المواضيع

نستطيع تكرار ال object باستخدام الحلقة التكرارية " for..of " وهي تسمي iterable ويمكننا ايضا استخدامها في عمل حلقة تكرارية علي احرف نص معين كما في المثال التالي

HTML
for (const x of "Closetag") {
  /* code block to be executed*/
}

نستطيع استخدام الحلقة التكرارية "for..of" لنقوم بعمل تكرار عملية المرور علي عناصر مصفوفة array معينة كما في المثال التالي

Example

HTML
for (const x of [1,2,3,4,5] {
  /* code block to be executed*/
}

ال iterator protocol يستخدم في تحديد الطريقة التي سوف يتم بها عرض النص الموجود بداخل object معين

ال object يصبح iterator عند تنفيذ دالة ( )next 

- تقوم دالة next بأرجاع object حتي علي اثنان من الخصائص properties وهما :

  • down : تكون قيمتها تساوي true عندما يتم انتهاء تنفيذ عملية التكرار علي عنصر معين و false اذا قام ال iterator باضافة قيمة جديدة
  • value : هي القيمة التي تم ارجاعها بواسطة ال iterator ويمكن تجاهلها اذا كانت قيمت "done" تساوي "true "

هذه العوائد المتكررة التي لا تنتهي أبدًا: 10،20،30،40 ، .... في كل مرة يتم استدعاء دالة ( )next

HTML
/* Home Made Iterable */
function myNumbers() {
  let n = 0;
  return {
    next: function() {
      n += 10;
      return {value:n, done:false};
    }
  };
}

/* Create Iterable */
const n = myNumbers();
n.next(); /* Returns 10 */
n.next(); /* Returns 20 */
n.next(); /* Returns 30 */

iterable : هو عبارة عن object يحتوي علي الخاصية "Symbol.iterator "

Symbol.iterator : هي عبارة عن خاصية تقوم بتنفيذ دالة ( )next 

Example

HTML
/* Create an Object */
myNumbers = {};

/* Make it Iterable */
myNumbers[Symbol.iterator] = function() {
  let n = 0;
  done = false;
  return {
    next() {
      n += 10;
      if (n = 100) {done = true}
      return {value:n, done:done};
    }
  };
}

الدالة "Symbol.iterator " يتم استدعائها بشكل تلقائي بواسطة "for..of" ولكننا يمكننا انشائها بشكل يدوي كالتالي

HTML
let iterator = myNumbers[Symbol.iterator]();

while (true) {
  const result = iterator.next();
  if (result.done) break;
  // Any Code Here
}

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…