91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript迭代器怎么實現

發布時間:2021-12-08 19:09:41 來源:億速云 閱讀:234 作者:iii 欄目:web開發

本篇內容主要講解“javascript迭代器怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“javascript迭代器怎么實現”吧!

在javascript中,迭代器是一種特殊對象,它具有一些專門為迭代過程設計的專有接口,所有的迭代器對象都有一個next()方法,每次調用都返回一個結果對象。迭代器會保存一個內部指針,用來指向當前集合中值的位置。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

一、迭代器的定義:

迭代器是一種特殊對象,它具有一些專門為迭代過程設計的專有接口,所有的迭代器對象都有一個next()方法,每次調用都返回一個結果對象。結果對象有兩個屬性:一個是value,表示下一個將要返回的值;另一個是done,它是一個布爾類型的值,當沒有更多可返回數據時返回true。迭代器還會保存一個內部指針,用來指向當前集合中值的位置,每調用一次next()方法,都會返回下一個可用的值

如果在最后一個值返回后再調用next()方法,那么返回的對象中屬性done的值為true,屬性value則包含迭代器最終返回的值,這個返回值不是數據集的一部分,它與函數的返回值類似,是函數調用過程中最后一次給調用者傳遞信息的方法,如果沒有相關數據則返回undefined

二、為何會出現迭代器?

背景前提:

我相信你一定用過for循環,并且也有過空指針引用的問題:比如數組長度只有5,但是你的索引卻跑到了6。邏輯稍微失誤,就導致程序不能正常運行。

迭代器想要解決的問題是:

解決、或減少使用類似for循環過程中,訪問變量集合的中出錯的問題。比如:空指針引用

舉個栗子:

我們使用for循環遍歷集合時,容易出錯,但是我們使用類似forEach的話,就會減少空指針引用的問題。

array.forEach(element => {
	// 此時可以不用i來操作集合了。            
});

三、用js實現一個簡單的迭代器

function myIterator(list) {
    let i = 0;
    return {
        next: function() {
            let done = (i >= list.length);
            let value = !done ? list[i++] : undefined;
            return {
                done: done,
                value: value
            };
        }
    };
}

由函數定義可以看出:

  • 函數返回值是個對象 ,對象中,key為next、value為函數;

  • 每調用一次next(),i+1,同時返回一個對象 ,對象就是集合的元素;

到此,相信大家對“javascript迭代器怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台湾省| 临颍县| 天等县| 皮山县| 固安县| 仪征市| 桃园市| 河源市| 稷山县| 临湘市| 班玛县| 太原市| 长沙县| 敦煌市| 凤翔县| 辽宁省| 宁都县| 章丘市| 新密市| 临清市| 衡阳县| 北安市| 尤溪县| 会同县| 嘉善县| 应用必备| 昌平区| 镇雄县| 高州市| 西城区| 尉犁县| 嘉祥县| 兰西县| 千阳县| 汽车| 衡阳市| 七台河市| 宜川县| 安阳市| 长顺县| 乌什县|