成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Iterator 和 for..of vs for...in

ThreeWords / 1803人閱讀

摘要:迭代器遍歷器提高訪問具有遍歷借口數(shù)據(jù)的效率相當(dāng)于指針默認(rèn)是可遍歷借口有方法將當(dāng)前指針移動到下個位置,返回一個對象數(shù)組默認(rèn)有迭代器屬性可以用在數(shù)組類數(shù)組類似于數(shù)組類數(shù)組自定義遍歷器普通循環(huán)遍歷迭代器遍歷遍歷遍歷用來遍歷對象

Iterator迭代器(遍歷器) 提高訪問具有遍歷借口數(shù)據(jù)的效率 相當(dāng)于指針(默認(rèn)是-1); 可遍歷借口 有next方法(next將當(dāng)前指針移動到下個位置,返回一個對象{value:,done:}) 數(shù)組默認(rèn)有迭代器屬性
    var arr = [111,222,333];
    var aa = arr[Symbol.iterator]();
    aa.next(); // { value: 111, done: false }
    aa.next(); // { value: 222, done: false }
    aa.next(); // { value: 333, done: false }
    aa.next(); // { value: undefined, done: true }
可以用在 數(shù)組 Map Set 類數(shù)組
    var m = new Set([11,22,33]);//set類似于數(shù)組
    console.log(m);
    var qq=m[Symbol.iterator]();
    console.log(qq.next());//{value: 11, done: false}
    var s = new Map([["name","shi"],["age",3]]);
    s.set("sex","nv")
    console.log(s);
    var i=s[Symbol.iterator]();
    console.log(i.next());
類數(shù)組
    var try=document.getElementsByName("div");
    console.log(try);
自定義遍歷器
    var arr = [111,222,333];
    function aa(arr){
    var i=-1;
    function next(){
        i++;
        let value;
        let done=false;

        if (i==arr.length) {
            value=undefined;
            done=true;
        }else{
            value=arr[i];
        }
        return{value:value,done:done};
    }
    return {next:next};
}

    var zz=aa(arr); 
    console.log(zz.next());//Object {value: 111, done: false}
    console.log(zz.next());//Object {value: 222, done: false}
    console.log(zz.next());//Object {value: 333, done: false}
    console.log(zz.next());//Object {value: undefined, done: true}
    
for..of vs for...in 普通循環(huán)遍歷
var arr=[1,2,3,4,5,6];
for (var i = 0, l = arr.length; i{
    console.log(i);
})
迭代器遍歷
var bb=arr[Symbol.iterator]();
var cc=bb.next();
while(!cc.done){
    console.log(cc.value);
    cc=bb.next();
}
for of array 遍歷
for(var item of arr){
    console.log(item);
} 
for of set 遍歷
var s=new Set(["a","b","c"]);
for(var item  of s){
    console.log(item);
}
for in 用來遍歷對象
// 
var obj={
    x:1,y:2,z:3
}
for(var i in obj ){
    console.log(i)//x,y,z
    console.log(obj[i]);//x 1 y 2 z 3
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88331.html

相關(guān)文章

  • 一文徹底弄懂 for forEach for-in for-of 的區(qū)別

    基本語法 下面列出了這幾個遍歷語法規(guī)則: for (let index = 0; index < array.length; index++) { const element = array[index] // ... } array.forEach(element => { // ... }) for (const key in array) { // ......

    newsning 評論0 收藏0
  • Iterator for...of 循環(huán)

    摘要:和循環(huán)遍歷器意義為四種數(shù)據(jù)集合,提供統(tǒng)一的接口機制來處理所有不同的數(shù)據(jù)結(jié)構(gòu)。調(diào)用函數(shù)返回一個遍歷器對象,代表函數(shù)的內(nèi)部指針。以后,每次調(diào)用遍歷器對象的方法,就會返回一個有著和兩個屬性的對象。 Iterator 和 for...of 循環(huán) Iterator(遍歷器)意義 為Array、Object、Map、Set四種數(shù)據(jù)集合,提供統(tǒng)一的接口機制來處理所有不同的數(shù)據(jù)結(jié)構(gòu) 。 任何數(shù)據(jù)結(jié)構(gòu),...

    Drinkey 評論0 收藏0
  • for ...offor... in

    摘要:也就是說,遍歷器對象本質(zhì)上,就是一個指針對象。規(guī)定,默認(rèn)的接口部署在數(shù)據(jù)結(jié)構(gòu)的屬性,或者說,一個數(shù)據(jù)結(jié)構(gòu)只要具有屬性,就可以認(rèn)為是可遍歷的屬性本身是一個函數(shù),就是當(dāng)前數(shù)據(jù)結(jié)構(gòu)默認(rèn)的遍歷器生成函數(shù)。執(zhí)行這個函數(shù),就會返回一個遍歷器。 for...in遍歷對象的屬性或數(shù)組索引(ES5) eg1:遍歷數(shù)組 var arr=[a,b,c,d]; for(let index in...

    lijinke666 評論0 收藏0
  • 我們不一樣:for...offor...in

    摘要:定義兩者都是遍歷的方法,最先能想到的區(qū)別是,前者是遍歷鍵名,后者是遍歷鍵值。一種數(shù)據(jù)結(jié)構(gòu)只要部署了接口,就稱之為可遍歷的。中提供了一些具備原生接口的數(shù)據(jù)結(jié)構(gòu)包括函數(shù)的對象對象。 定義 兩者都是遍歷的方法,最先能想到的區(qū)別是,前者是遍歷鍵名,后者是遍歷鍵值??匆幌聝烧叩亩x: for...in 遍歷當(dāng)前對象的所有可枚舉屬性(包括自有屬性,從原型繼承的屬性),遍歷順序是無序的 for.....

    Imfan 評論0 收藏0
  • ES6語法之可迭代協(xié)議迭代器協(xié)議

    摘要:有兩個協(xié)議可迭代協(xié)議和迭代器協(xié)議。為了變成可迭代對象,一個對象必須實現(xiàn)或者它原型鏈的某個對象必須有一個名字是的屬性迭代器協(xié)議該迭代器協(xié)議定義了一種標(biāo)準(zhǔn)的方式來產(chǎn)生一個有限或無限序列的值。 ECMAScript 2015的幾個補充,并不是新的內(nèi)置或語法,而是協(xié)議。這些協(xié)議可以被任何遵循某些約定的對象來實現(xiàn)。有兩個協(xié)議:可迭代協(xié)議和迭代器協(xié)議。 可迭代協(xié)議 可迭代協(xié)議允許 JavaScri...

    sarva 評論0 收藏0

發(fā)表評論

0條評論

ThreeWords

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<