شرح صفوف ومحتوى الفقرة
هذه العوائد المتكررة التي لا تنتهي أبدًا: 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
}