# Iterator 迭代器
> 遍歷器(Iterator)是一種機制。它是一種接口,為各種不同的數據結構提供統一的訪問機制。任何數據結構只要部署 Iterator 接口,就可以完成遍歷操作(即依次處理該數據結構的所有成員)
- 為各種數據結構,提供一個統一的、簡便的訪問接口
- 使得數據結構的成員能夠按某種次序排列
- ES6 創造了一種新的遍歷命令 for...of 循環,Iterator 接口主要供 for...of 消費
```javascript
//迭代器實現
var it = makeIterator(['a', 'b']);
console.log(it.next()); // { value: "a", done: false }
console.log(it.next()); // { value: "b", done: false }
console.log(it.next()); // { value: undefined, done: true }
function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
return nextIndex < array.length
? { value: array[nextIndex++], done: false }
: { value: undefined, done: true };
}
};
}
```
> es6中,有三類數據結構原生具備Iterator接口:數組、類數組的對象、Set和Map結構。
for of可實現遍歷Iterator內部數據
**for...of循環可以使用的范圍包括數組、Set和Map結構、某些類似數組的對象(比如arguments對象、DOM NodeList對象)、Generator(生成器)對象,以及字符串。**
- 01.let-const
- 02.對象數組解構&賦值
- 03.字符串擴展,數值擴展,數組擴展
- 04.數組擴展
- 05.對象擴展
- 06.06.Symbol原始數據類型
- 07.set數據結構
- 08.map數據結構
- 09.proxy與Reflect
- 10.類
- 11.Promise
- 12.Iterator(迭代器)
- 13.Generator(生成器)
- 14.module與模塊化
- 15.es6學習總結
- 記錄- Vue拖拽實例
- 記錄-git使用天坑之分支切換
- node -- session & cookie & localStorge
- 18.12關于前端戰略技術儲備與問題反饋
- Vue組件通信方式總結以及遇到的問題
- 01.版本回溯以及文件修改
- 02.遠端控制
- 03.分支管理
- node 入門 留言板
- nodejs模塊與 commonjs 規范
- 19年技術發展規劃
- JS錯誤處理 -> 提升程序健壯性
- Git 基本使用
- 18年年終總結