首頁 >web前端 >js教程 >ES6中Iterator介面的程式碼範例講解

ES6中Iterator介面的程式碼範例講解

不言
不言轉載
2018-10-29 15:18:201982瀏覽

這篇文章帶給大家的內容是關於ES6中Iterator介面的程式碼範例講解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

es6中,當操作某些資料結構(array object map set)時,怎麼用一個統一的方法操作,Iterator介面實作了這樣的功能

1 .Iterator在陣列中的應用

{
    let arr = ['hello', 'world'];
    // 数组内部实现了iterator接口,所以直接调用[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 表示数组元素,done表示循环是否有下一步状态,true:没有下一步了,false:循环没有结束
}

2.自訂Iterator介面

{
    // object没有内置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 <p><strong>#3.for...of迴圈</strong> </p><pre class="brush:php;toolbar:false">{
    // 数组内部实现了iterator接口,所以可以直接使用for...of循环
    let arr = ['hello', 'world'];
    for (let value of arr) {
        console.log(value); // hello world
    }
}

               








                                                                                                      26ES6中Iterator介面的程式碼範例講解#                                                           發佈於                                                                                                                                                                 ##                                                                                                                                               

  •                                                                   

    #
  • 【ES6入門13】:Iterator

  • #「」##########es6########################################################################################### #######javascript###

                                        閱讀                                                 ·                                                作用內使用 6 分鐘                                                                                    




  • ES6中Iterator介面的程式碼範例講解

#                            

0

#                        







##################################################                        #######                        #######                        #######                        #######                        ####### ###############es6中,當操作某些資料結構(array object map set)時,怎麼用一個統一的方法操作,Iterator介面實作了這樣的功能#### #####1.Iterator在陣列中的應用######
{
    let arr = ['hello', 'world'];
    // 数组内部实现了iterator接口,所以直接调用[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 表示数组元素,done表示循环是否有下一步状态,true:没有下一步了,false:循环没有结束
}
#######2.自訂Iterator介面######
{
    // object没有内置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 ######3.for.. .of循環######<pre class="brush:php;toolbar:false">{
    // 数组内部实现了iterator接口,所以可以直接使用for...of循环
    let arr = ['hello', 'world'];
    for (let value of arr) {
        console.log(value); // hello world
    }
}
###               ##################################### #################檢舉################################################################## ###################你可能感興趣的########################## ###################評論####                                                 時間排序########################載入中...######顯示更多註解######## ###################

以上是ES6中Iterator介面的程式碼範例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除