迭代器的简介:
定义:迭代器(lterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署lterator接口,就可以完成遍历操作,ES6新增遍历方式for...of。原生具备lterator接口的数据有:Array,Arguments,Set,Map,String,NodeList。
原理:创建一个指针对象,指向数据结构的起始位置,第一次调用==next()==方法,指针自动指向数据结构第一个成员,接下来不断调用next(),指针一直往后移动,直到指向最后一个成员,没调用next()返回一个包含value和done属性的对象.
使用案例:
迭代器接口的应用:
定义:遵循面向对象思想,自定义遍历数据。
const str = {
//这里不能定义一个变量,所以直接写arr即可
arr:['a', 'b', 'c'],
// Symbol:指的是唯一的值,具体内容可见前面所介绍的内容
[Symbol.iterator](){
let i = 0;
//根据上面的手动打印去操作编写可知 首先第一步是next()对象 所以这里需要用到return
return {
next:()=>{
//给定一个判断语句去判断这个结果是false还是true 同时打印出结果值
if(i<this.arr.length){
const Obj = {value:this.arr[i],done:false};
i++;
return Obj;
}else{
return Obj = {value:undefined,done:true};
}
}
}
}
}
//这里采取的是调用获取
const Myitem = str[Symbol.iterator]();
console.log(Myitem.next())
//打印的结果过为{value: 'a', done: false}
console.log(Myitem.next())
//打印的结果为 {value: 'b', done: false}
以上是关于迭代器的使用,在工作中一般很少用到这种方法,所以简单介绍一下。关注博主,每日为你分享最实用,有价值,主流内容。