iterator遍历器

此篇用于整理iterator相关笔记

在JavaScript中,迭代器(iterator)是一种对象,它提供了一种统一的方式来遍历数据集合
(如数组、集合、映射等)的成员。迭代器对象通过定义一个'next()'方法来实现迭代操作,该方法会返回一个包含'{value,done}'结构的对象,其中'value'表示当前迭代到的值,'done'表示是否已经迭代完所有值。

JavaScript中迭代器的基本结构如下示例:

const myIterator = {
    [Symbol.iterator]: function() {
        let index = 0;
        const data = [1, 2, 3];
        return {
            next: function() {
                return index < data.length?
                    { value: data[index++], done:false };
                    { value: undefined, done: true };
            }
        };
    }
};
for (const item of myIterator) { 
    console.log(item);
}

iterator原理:当可遍历对象被for...of遍历的时候,[Symbol.iterator]()就会被调用,返回一个iterator对象;

for...of原理:当可遍历对象被for..of遍历的时候,[Symbol.iterator]()就会被调用,返回一个iterator对象;

iterator对象里面有一个next()方法,调用next()方法,返回一个对象,对象里面有value和done属性,直到done为true的时候结束执行。

一些内置类型拥有默认的迭代器行为,其他类型(如object)则没有。下列的内置类型拥有默认的@@iterator方法:

  • Array.prototype[@@iterator]()
  • TypedArray.prototype[@@iterator]()
  • String.prototype[@@iterator]()
  • Map.prototype[@@iterator]()
  • Set.prototype[@@iterator]()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值