在 ECMAScript (ES6) 中,創建迭代器的主要方法是實現一個帶有 next()
方法的對象。next()
方法應返回一個對象,該對象包含兩個屬性:value
(當前迭代的值)和 done
(布爾值,表示迭代是否完成)。
創建迭代器的步驟如下:
[Symbol.iterator]
的方法。[Symbol.iterator]
方法中返回一個包含 next()
方法的對象。下面是一個簡單的示例,展示了如何為一個數組創建迭代器:
const arr = [1, 2, 3, 4, 5];
arr[Symbol.iterator] = function* () {
for (const item of this) {
yield item;
}
};
const iterator = arr[Symbol.iterator]();
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
在這個示例中,我們為數組 arr
創建了一個迭代器。[Symbol.iterator]
方法返回一個生成器函數,該函數使用 yield
關鍵字返回數組中的每個元素。當我們調用 iterator.next()
時,生成器函數會返回數組中的下一個元素,直到所有元素都被迭代完畢。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。