في هذا الدرس 4تصفّح المواضيع
نستطيع تكرار ال object باستخدام الحلقة التكرارية " for..of " وهي تسمي iterable ويمكننا ايضا استخدامها في عمل حلقة تكرارية علي احرف نص معين كما في المثال التالي
نستطيع استخدام الحلقة التكرارية "for..of" لنقوم بعمل تكرار عملية المرور علي عناصر مصفوفة array معينة كما في المثال التالي
Example
ال iterator protocol يستخدم في تحديد الطريقة التي سوف يتم بها عرض النص الموجود بداخل object معين
ال object يصبح iterator عند تنفيذ دالة ( )next
- تقوم دالة next بأرجاع object حتي علي اثنان من الخصائص properties وهما :
- down : تكون قيمتها تساوي true عندما يتم انتهاء تنفيذ عملية التكرار علي عنصر معين و false اذا قام ال iterator باضافة قيمة جديدة
- value : هي القيمة التي تم ارجاعها بواسطة ال iterator ويمكن تجاهلها اذا كانت قيمت "done" تساوي "true "
هذه العوائد المتكررة التي لا تنتهي أبدًا: 10،20،30،40 ، .... في كل مرة يتم استدعاء دالة ( )next
/* 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
/* 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" ولكننا يمكننا انشائها بشكل يدوي كالتالي
let iterator = myNumbers[Symbol.iterator]();
while (true) {
const result = iterator.next();
if (result.done) break;
// Any Code Here
}
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.