国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

ThreeWords / 1791人閱讀

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

Iterator迭代器(遍歷器) 提高訪問具有遍歷借口數據的效率 相當于指針(默認是-1); 可遍歷借口 有next方法(next將當前指針移動到下個位置,返回一個對象{value:,done:}) 數組默認有迭代器屬性
    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 }
可以用在 數組 Map Set 類數組
    var m = new Set([11,22,33]);//set類似于數組
    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());
類數組
    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 普通循環遍歷
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
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88331.html

相關文章

  • 一文徹底弄懂 for forEach for-in for-of 的區別

    基本語法 下面列出了這幾個遍歷語法規則: 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 循環

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

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

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

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

    摘要:定義兩者都是遍歷的方法,最先能想到的區別是,前者是遍歷鍵名,后者是遍歷鍵值。一種數據結構只要部署了接口,就稱之為可遍歷的。中提供了一些具備原生接口的數據結構包括函數的對象對象。 定義 兩者都是遍歷的方法,最先能想到的區別是,前者是遍歷鍵名,后者是遍歷鍵值。看一下兩者的定義: for...in 遍歷當前對象的所有可枚舉屬性(包括自有屬性,從原型繼承的屬性),遍歷順序是無序的 for.....

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

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

    sarva 評論0 收藏0

發表評論

0條評論

ThreeWords

|高級講師

TA的文章

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