迭代器的简要内容

迭代器

迭代器就是一种机制。它是一种接口,为各种不同的数据解构提供统一的访问机制。任何数据结构只要部署Iteratior接口,就可以完成遍历操作

Iteractor的作用有三个:

一、是为各种数据结构,提供一个统一的、简便的访问接口

二、使得数据结构得成员能够按某种次序排列

三、Iterator接口主要供for...of消费

遍历过程:

1.创建一个指针对象,指向当前数据结构的起始位置。

2.第一次调用指针对象的next方法,指针就指向数据结构的第一个成员。

3.第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。

4.不断调用指针对象的next方法,知道它指向数据结构的结束位置。

每一次调用next方法,都会返回数据结构的当前成员的信息。具体来说,就是返回一个包含valuedone两个属性的对象。其中,value属性是当前成员的值,done属性是一个布尔值,表示遍历是否结束

例如:

let arr = [1, 2, 3, 'hello', '你好']
let diedai = arr.keys()
console.log(diedai.next());//{ value: 0, done: false }
console.log(diedai.next());//{ value: 1, done: false }
console.log(diedai.next());//{ value: 2, done: false }
console.log(diedai.next());//{ value: 3, done: false }
console.log(diedai.next());//{ value: 4, done: false }
console.log(diedai.next());//{ value: undefined, done: true }

原生具有Iterator接口的数据结构:

Array、Map、Set、String、TypedArray、arguments、NodeList

for..in和 for..of的区别:

for(let k in str) ----k拿到的是数组下标
for(let k of str) ----k拿到的是值

注意:普通对象使用for...of会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值