js中Iterator是什么

這篇文章將為大家詳細(xì)講解有關(guān)js中Iterator是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)是專業(yè)的澄城網(wǎng)站建設(shè)公司,澄城接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行澄城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Iterator是什么,有什么作用?

Iterator是理解第61條的先決知識,也許是我IQ不夠Iterator和Generator看了很多遍還是一知半解,即使當(dāng)時理解了,過一陣又忘得一干二凈。。。

Iterator(迭代器)是一種接口,也可以說是一種規(guī)范。為各種不同的數(shù)據(jù)結(jié)構(gòu)提供統(tǒng)一的訪問機制。任何數(shù)據(jù)結(jié)構(gòu)只要部署Iterator接口,就可以完成遍歷操作(即依次處理該數(shù)據(jù)結(jié)構(gòu)的所有成員)。

Iterator語法:

const obj = {
    [Symbol.iterator]:function(){}}

[Symbol.iterator]屬性名是固定的寫法,只要擁有了該屬性的對象,就能夠用迭代器的方式進行遍歷。

迭代器的遍歷方法是首先獲得一個迭代器的指針,初始時該指針指向第一條數(shù)據(jù)之前,接著通過調(diào)用 next 方法,改變指針的指向,讓其指向下一條數(shù)據(jù) 每一次的 next 都會返回一個對象,該對象有兩個屬性

  • value 代表想要獲取的數(shù)據(jù)

  • done 布爾值,false表示當(dāng)前指針指向的數(shù)據(jù)有值,true表示遍歷已經(jīng)結(jié)束

Iterator 的作用有三個:

  1. 為各種數(shù)據(jù)結(jié)構(gòu),提供一個統(tǒng)一的、簡便的訪問接口;

  2. 使得數(shù)據(jù)結(jié)構(gòu)的成員能夠按某種次序排列;

  3. ES6 創(chuàng)造了一種新的遍歷命令for…of循環(huán),Iterator 接口主要供for…of消費。

遍歷過程:

  1. 創(chuàng)建一個指針對象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位置。也就是說,遍歷器對象本質(zhì)上,就是一個指針對象。

  2. 第一次調(diào)用指針對象的next方法,可以將指針指向數(shù)據(jù)結(jié)構(gòu)的第一個成員。

  3. 第二次調(diào)用指針對象的next方法,指針就指向數(shù)據(jù)結(jié)構(gòu)的第二個成員。

  4. 不斷調(diào)用指針對象的next方法,直到它指向數(shù)據(jù)結(jié)構(gòu)的結(jié)束位置。

每一次調(diào)用next方法,都會返回數(shù)據(jù)結(jié)構(gòu)的當(dāng)前成員的信息。具體來說,就是返回一個包含value和done兩個屬性的對象。其中,value屬性是當(dāng)前成員的值,done屬性是一個布爾值,表示遍歷是否結(jié)束。

let arr = [{num:1},2,3]let it = arr[Symbol.iterator]() 
// 獲取數(shù)組中的迭代器console.log(it.next()) 	
// { value: Object { num: 1 }, done: false }console.log(it.next()) 
	// { value: 2, done: false }console.log(it.next()) 
		// { value: 3, done: false }console.log(it.next())
		 	// { value: undefined, done: true }

關(guān)于“js中Iterator是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:js中Iterator是什么
鏈接URL:http://bm7419.com/article38/igdhsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、服務(wù)器托管、靜態(tài)網(wǎng)站、網(wǎng)站維護軟件開發(fā)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)