ES6 - lterator
生活随笔
收集整理的這篇文章主要介紹了
ES6 - lterator
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 迭代器(內(nèi)部迭代器和外部迭代器)
- 迭代模式:
提供一種方法順序獲得集合對(duì)象中的各個(gè)元素,是一種最簡(jiǎn)單也是最常見的設(shè)計(jì)模式,提供特定的接口。
- 內(nèi)部迭代器:
本身是函數(shù),定義好內(nèi)部迭代規(guī)則,外部只需一次初始調(diào)用 ; 例如:Array.prototypr.forEach 、jQuery.each 等
- 外部迭代器:
本身是函數(shù),執(zhí)行迭代對(duì)象,迭代對(duì)象必須顯示調(diào)用,調(diào)用復(fù)雜度增加,但靈活性強(qiáng)
2. 外部迭代器模擬
let arr = [1,2,3]function customIterator(arr2){let i = 0let next = function(){ return {value : arr2[i],done : arr.length > ++i}}return {next}}let iter = customIterator(arr)console.log( iter.next() )console.log( iter.next() )console.log( iter.next() )// 三次打印結(jié)果如下圖3. 迭代器的目的
由于前端的快速發(fā)展,使得數(shù)據(jù)結(jié)構(gòu)發(fā)生了變化,產(chǎn)生了特定對(duì)象或者 set、map 等數(shù)據(jù)結(jié)構(gòu),前期的 for 循環(huán)遍歷是無(wú)法迭代的,由此 lterator 就產(chǎn)生了,部署在各種數(shù)據(jù)結(jié)構(gòu)上,使這些數(shù)據(jù)能被迭代操作。(for of、… 、Array.from)
總結(jié)
以上是生活随笔為你收集整理的ES6 - lterator的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IDempiere 富文本编辑器优化
- 下一篇: 打发时光的102个网站