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

資訊專欄INFORMATION COLUMN

【ES6入門13】:Iterator

chnmagnus / 3181人閱讀

摘要:中,操作某些數(shù)據(jù)結(jié)構(gòu)時,怎么用一個統(tǒng)一的方法操作,接口實現(xiàn)了這樣的功能在數(shù)組中的應(yīng)用數(shù)組內(nèi)部實現(xiàn)了接口,所以直接調(diào)用表示數(shù)組元素,表示循環(huán)是否有下一步狀態(tài),沒有下一步了,循環(huán)沒有結(jié)束自定義接口沒有內(nèi)置接口,自定義接口,讓也可以使用聲明接口方

es6中,操作某些數(shù)據(jù)結(jié)構(gòu)(array object map set)時,怎么用一個統(tǒng)一的方法操作,Iterator接口實現(xiàn)了這樣的功能

1.Iterator在數(shù)組中的應(yīng)用

{
    let arr = ["hello", "world"];
    // 數(shù)組內(nèi)部實現(xiàn)了iterator接口,所以直接調(diào)用[Symbol.iterator]()
    let map = arr[Symbol.iterator]();
    console.log(map.next()); // {value: "hello", done: false}
    console.log(map.next()); // {value: "world", done: false}
    console.log(map.next()); // {value: undefined, done: true}
    // value 表示數(shù)組元素,done表示循環(huán)是否有下一步狀態(tài),true:沒有下一步了,false:循環(huán)沒有結(jié)束
}

2.自定義Iterator接口

{
    // object沒有內(nèi)置iterator接口,自定義iterator接口,讓obj也可以使用for...of
    let obj = {
        start: [1,2,3],
        end: [4,5,6],
        // 聲明iterator接口方法
        [Symbol.iterator]() {
            // 先遍歷start,再遍歷end
            let arr = this.start.concat(this.end);
            let index = 0;
            // 返回next()
            return {
                next() {
                    if (index < arr.length) {
                        return {
                            value: arr[index++],
                            done: false
                        }
                    } else {
                        return {
                            value: arr[index++],
                            done: true
                        }
                    }
                }
            }
        }
    };
    // for...of 實現(xiàn)的原理就是不斷調(diào)用Iterator接口
    // 通過 for...of 驗證接口是否配置成功,如果沒有配置成功,object就無法使用 for...of循環(huán)
    for (let key of obj) {
        console.log(key); // 1 2 3 4 5 6
    }
}

3.for...of循環(huán)

{
    // 數(shù)組內(nèi)部實現(xiàn)了iterator接口,所以可以直接使用for...of循環(huán)
    let arr = ["hello", "world"];
    for (let value of arr) {
        console.log(value); // hello world
    }
}

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98762.html

相關(guān)文章

  • ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門

    摘要:也就是說,遍歷器對象本質(zhì)上,就是一個指針對象。執(zhí)行這個函數(shù),就會返回一個遍歷器。一個對象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對象具有該方法也可。后面跟的是一個可遍歷的結(jié)構(gòu),它會調(diào)用該結(jié)構(gòu)的遍歷器接口。 ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門) Iterator的遍歷過程 創(chuàng)建一個指針對象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位...

    mayaohua 評論0 收藏0
  • 【重溫基礎(chǔ)】13.迭代器和生成器

    摘要:迭代器和生成器將迭代的概念直接帶入核心語言,并提供一種機制來自定義循環(huán)的行為。本文主要會介紹中新增的迭代器和生成器。屬性本身是函數(shù),是當(dāng)前數(shù)據(jù)結(jié)構(gòu)默認的迭代器生成函數(shù)。 本文是 重溫基礎(chǔ) 系列文章的第十三篇。今日感受:每次自我年終總結(jié),都會有各種情緒和收獲。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎(chǔ)】1.語法和數(shù)據(jù)類型 【重溫基礎(chǔ)】2.流...

    ymyang 評論0 收藏0
  • 2017-08-13 前端日報

    摘要:前端日報精選從源碼看數(shù)組排序的詭異問題顯示網(wǎng)格和隱式網(wǎng)格的區(qū)別打包工具完全入門指南使用之前要在里學(xué)的件事工作機制第部分中文深入理解中的代碼片段,你能猜對幾個掘金深入理解筆記中的類深入理解筆記迭代器和生成器最新版構(gòu)建分享小王子 2017-08-13 前端日報 精選 從 V8 源碼看 JS 數(shù)組排序的詭異問題顯示網(wǎng)格和隱式網(wǎng)格的區(qū)別JS打包工具rollup——完全入門指南使用 Redux ...

    Eastboat 評論0 收藏0
  • ES6簡單總結(jié)(搭配簡單的講解和小案例)

    摘要:方法返回一個布爾值,表示某個數(shù)組是否包含給定的值,與字符串的方法類似。不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用命令,否則會拋出一個錯誤。本身是一個構(gòu)造函數(shù),用來生成數(shù)據(jù)結(jié)構(gòu)。返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。 在學(xué)習(xí)es6的過程中,為了方便自己復(fù)習(xí),以及查看,對api做了一個極簡用例介紹。如有錯誤多多指正。 一 let和const 1.let (1)一個大...

    joyqi 評論0 收藏0

發(fā)表評論

0條評論

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