摘要:什么是中這種數(shù)據(jù)對(duì)象這樣就需要一種統(tǒng)一的接口機(jī)制來(lái)處理所有不同的數(shù)據(jù)結(jié)構(gòu)作用為各種數(shù)據(jù)結(jié)構(gòu)提供一個(gè)同一的簡(jiǎn)便的數(shù)據(jù)接口使得數(shù)據(jù)結(jié)構(gòu)的成員按照某種次序排列新增了循環(huán)來(lái)遍歷就是通過(guò)不斷的來(lái)訪問(wèn)值手寫(xiě)返回一個(gè)包含和屬性的對(duì)象數(shù)組字符串天生具備遍歷
什么是iterator
es6中map set arr obj 這4種數(shù)據(jù)對(duì)象 這樣就需要一種統(tǒng)一的接口機(jī)制來(lái)處理所有不同的數(shù)據(jù)結(jié)構(gòu)
作用:
1、為各種數(shù)據(jù)結(jié)構(gòu)提供一個(gè)同一的、簡(jiǎn)便的數(shù)據(jù)接口
2、使得數(shù)據(jù)結(jié)構(gòu)的成員按照某種次序排列
3、es6 新增了 for..of循環(huán) 來(lái)遍歷iterator
iterator就是通過(guò)不斷的next來(lái)訪問(wèn)值{value:value}
手寫(xiě)iteratorvar arr=[1,2,3] function iterator(arr) { let index=0; return { next:function () { return index數(shù)組 set map 字符串 天生具備iterator遍歷器接口
檢測(cè)一個(gè)數(shù)組解構(gòu)是否天生就具有iterator?是否具有Symbol.iterator屬性
var arr1=[1,2,3]; var set1=new Set(["a","b","c"]) var map1=new Map([["a",1],["b",2]]) //一定要正確的定義Map var str="sasa"; var ai=arr1[Symbol.iterator](); var si=set1[Symbol.iterator](); var mi=map1[Symbol.iterator](); console.log(ai,si,mi) //就會(huì)返回?cái)?shù)組、集合、map的遍歷器接口 console.log(str[Symbol.iterator]()) 字符串的遍歷器接口但是object是沒(méi)有Symbol.iterator這個(gè)屬性的
var obj={}; console.log(obj[Symbol.iterator]()) //報(bào)錯(cuò)具備iterator接口的集合都能夠進(jìn)行哪些操作1、解構(gòu)賦值
2、擴(kuò)展運(yùn)算符 ...將一個(gè)數(shù)據(jù)結(jié)構(gòu)展開(kāi)var str="sasa"; var arrstr=[...str]; console.log(arrstr)利用這個(gè)原理實(shí)現(xiàn)數(shù)組去重
var arrchong=[1,2,3,1,1,3,34,4,1]; console.log([...(new Set(arrchong))])3、都可以是用for of循環(huán)
var arrchong=[1,2,3,1,1,3,34,4,1]; for(let i of arrchong){ console.log(i) }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88699.html
摘要:也就是說(shuō),遍歷器對(duì)象本質(zhì)上,就是一個(gè)指針對(duì)象。執(zhí)行這個(gè)函數(shù),就會(huì)返回一個(gè)遍歷器。一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。后面跟的是一個(gè)可遍歷的結(jié)構(gòu),它會(huì)調(diào)用該結(jié)構(gòu)的遍歷器接口。 ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門(mén)) Iterator的遍歷過(guò)程 創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位...
摘要:返回的遍歷器對(duì)象,可以依次遍歷函數(shù)內(nèi)部的每一個(gè)狀態(tài)。以后,每次調(diào)用遍歷器對(duì)象的方法,就會(huì)返回一個(gè)有著和兩個(gè)屬性的對(duì)象。由于函數(shù)就是遍歷器生成函數(shù),因此可以把賦值給對(duì)象的屬性,從而使得該對(duì)象具有接口。 let 和 const 作用域的概念 全局作用域 函數(shù)作用域 塊作用域如何使用let和const 使用let 1、形成塊級(jí)作用域2、es6下強(qiáng)制開(kāi)啟嚴(yán)格模式,而在es5下,需要use ...
摘要:像和使用內(nèi)置構(gòu)造函數(shù)所創(chuàng)建的對(duì)象都會(huì)繼承自和的不可枚舉屬性,例如的方法或的方法。循環(huán)將遍歷對(duì)象本身的所有可枚舉屬性,以及對(duì)象從其構(gòu)造函數(shù)原型中繼承的屬性更接近原型鏈中對(duì)象的屬性覆蓋原型屬性。遍歷數(shù)組時(shí)推薦使用,其中為數(shù)組每一項(xiàng)的值。 引言 在對(duì)數(shù)組或?qū)ο筮M(jìn)行遍歷時(shí),我們經(jīng)常會(huì)使用到兩種方法:for...in 和 for...of,那么這兩種方法之間的區(qū)別是什么呢?讓我們來(lái)研究研究。 一...
摘要:也就是說(shuō),遍歷器對(duì)象本質(zhì)上,就是一個(gè)指針對(duì)象。規(guī)定,默認(rèn)的接口部署在數(shù)據(jù)結(jié)構(gòu)的屬性,或者說(shuō),一個(gè)數(shù)據(jù)結(jié)構(gòu)只要具有屬性,就可以認(rèn)為是可遍歷的屬性本身是一個(gè)函數(shù),就是當(dāng)前數(shù)據(jù)結(jié)構(gòu)默認(rèn)的遍歷器生成函數(shù)。執(zhí)行這個(gè)函數(shù),就會(huì)返回一個(gè)遍歷器。 for...in遍歷對(duì)象的屬性或數(shù)組索引(ES5) eg1:遍歷數(shù)組 var arr=[a,b,c,d]; for(let index in...
摘要:一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。阮大神案例上面代碼是一個(gè)類(lèi)部署接口的寫(xiě)法。屬性對(duì)應(yīng)一個(gè)函數(shù),執(zhí)行后返回當(dāng)前對(duì)象的遍歷器對(duì)象。 最近看阮一峰阮大神的ES6,剛剛看到Iterator和for...of循環(huán)這一章,小作筆記跟大家略微分享一下,不足之處還望大家多多指正 Iterator(遍歷器)就是一種機(jī)制;任何數(shù)據(jù)結(jié)構(gòu)只要是...
閱讀 4058·2021-09-24 10:24
閱讀 1410·2021-09-22 16:01
閱讀 2729·2021-09-06 15:02
閱讀 1031·2019-08-30 13:01
閱讀 1018·2019-08-30 10:52
閱讀 644·2019-08-29 16:36
閱讀 2248·2019-08-29 12:51
閱讀 2348·2019-08-28 18:29