美文网首页
18.遍历器 迭代器

18.遍历器 迭代器

作者: dptms | 来源:发表于2017-10-27 14:14 被阅读14次

    遍历器 迭代器

    遍历器就是第一个对象,这个对象有一个 next 方法,会返回需要的数据,可遍对象就是那些部署了 Symbol.iterator 属性的对象。我们也可以通过 [].entries() 获取到数组的遍历器

    const colors = ['red', 'blue', 'green'];
    // 这里的 `iterator` 就是遍历器
    const iterator = colors[Symbol.iterator]();
    // `iterator` 上面有个一 `next` 方法,每一次执行都会返回一个对象,包含一个 `name` 属性记录值和一个 `done` 属性记录遍历是否完结。
    iterator.next(); // {value: "red", done: false}
    

    构建数组中的 values 方法

    目前的浏览器上只有 [].keys() 这个方法,返回的就是一个遍历器对象,我们可以自己尝试构建一个 [].values() 方法

    const colors = ['red', 'blue', 'green'];
    Array.prototype.values = function () {
        let i = 0;
        let items = this;
        return {
            next() {
                const done = i >= items.length;
                const value = done ? undefined : items[i++];
                return {
                    value,
                    done
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:18.遍历器 迭代器

          本文链接:https://www.haomeiwen.com/subject/uiwrpxtx.html