lterator遍历
iterator是一种接口机制,为各种不同的数据结构提供统一的访问机制
作用:
1、为各种数据结构,提供一个统一的、简便的访问接口;
2、使得数据结构的成员能够按某种次序排列
3、ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。
工作原理:
- 创建一个指针对象,指向数据结构的起始位置。
- 第一次调用next方法,指针自动指向数据结构的第一个成员
- 接下来不断调用next方法,指针会一直往后移动,直到指向最后一个成员
- 每调用next方法返回的是一个包含value和done的对象,{value: 当前成员的值,done: 布尔值}
* value表示当前成员的值,done对应的布尔值表示当前的数据的结构是否遍历结束。
* 当遍历结束的时候返回的value值是undefined,done值为false
原生具备iterator接口的数据(可用for of遍历)
1、Array
2、arguments
3、set容器
4、map容器
5、String
// 自定义iterator生成指针对象function mockIterator(arr) {let nextIndex = 0;return {next: function () {return nextIndex<arr.length?{value: arr[nextIndex++], done: false}:{value: undefined, done: true}}}}let arr = [1,2,3,4,5];let iteratorObj = mockIterator(arr);console.log(iteratorObj.next());console.log(iteratorObj.next());console.log(iteratorObj.next());
// 使用解构赋值以及...三点运算符时会调用iterator接口let arr1 = [1,2,3,4,5];
let [value1, ...arr2] = arr1;
// yield*语句
function* generatorObj() {
yield '1'; // 可遍历数据,会自动调用iterator函数
yield '3';
}
let Go = generatorObj();
console.log(Go.next());
console.log(Go.next());
console.log(Go.next());
// 原生测试 数组let arr3 = [1, 2, 'kobe', true];for(let i of arr3){console.log(i);}
// 字符串 stringlet str = 'abcdefg';for(let item of str){console.log(item);}
lterator遍历相关推荐
- 使用lterator遍历set、list
使用lterator遍历set.list public class a {public static void main(String[] args) {Set hashSet = new HashS ...
- iterator [ɪtə'reɪtə] 遍历器
lterator 遍历器 遍历器是一种接口,它为不同的数据结构提供了统一的访问机制. 如果一个数据结构具有遍历器接口,那么就可以依次处理该数据结构的成员. 当前 javascript 用来表示集合的数 ...
- Map的分类和不同的应用场景
java为数据结构中的映射定义了一个接口java.util.Map; 它有四个实现类,分别是HashMap,Hashtable,LinkedHashMap和TreeMap 可能很多人只使用过HashM ...
- 疯狂Java讲义(八)----第一部分
本章重点: Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈.队列等.除此之外,Java 集合还可用于保存具有映射关系的关联数组.Java集合大致可分为S ...
- es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器
文章目录 迭代器 Iterator 用处 (需要自定义遍历数据的时候) 自定义 遍历器 lterator 简单模拟values方法 Array Set Map 默认迭代器接口 entries valu ...
- lterator 迭代器 静态属性Symbol.iterator Symbol(Symbol.iterator)
** lterator迭代器 ** 迭代模式:提供一种方法是可以顺序获得聚合对象中的各个元素,是一种最简单也最常见的设计模式.他可以让用户透过特定的接口巡防集合中的每一个元素而不用了解底层的实现 迭代 ...
- lterator方法讲解
lterator方法讲解 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级&quo ...
- java集合 — — lterator迭代器
二.lterator迭代器 2.1.Iterator接口 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口.java.util.Iterator.Iterator 接 ...
- 迭代器模式(lterator Pattern)简介
定义 迭代器模式(lterator Pattern)又称为游标模式(Cursor Pattern),它提供一种顺序访问集合或容器对象元素的方法,而又无须暴露集合内部表示.迭代器模式可以为不同的容器提供 ...
最新文章
- jQuery中的插件机制
- 2018谷歌学术指数发布——看看综合、生物、生信、微生物领域高引文章和杂志
- 大型网站架构系列:电商网站架构案例(2)
- 参数列表和数组的相互转换
- 【Selenium】之谷歌、IE、火狐浏览器各个版本的浏览器驱动下载地址
- GDB调试多进程程序或同时调试多个程序
- Java虚拟机(JVM)-1-内存区域
- MySQL 对 CREATE TABLE IF NOT EXISTS SELECT 的处理
- 移动互联网时代的创业生存法则:快速试错,廉价失败
- 视频 |【2019】Power BI 8月产品功能更新讲解
- 4款FTP搜索引擎比专业
- NTC热敏电阻的主要技术参数
- 使用python裁剪图片
- DDOS专题详细讲解
- 动态规划_(dynamic programming)_python_最大子序列(最长公共子序列)(可非连续子序列(several versions))
- 细致教程:从安装到实战手把手教你玩懂Nacos
- 只要愿意改变,什么时候都不太晚。。。。。
- SPSS统计作图教程:百分条图/堆积条图
- 室内地图在哪些方面提升了我们的生活便利性?
- 赛迪智库丨谁能成功抢位操作系统,谁就能掌握未来汽车产业发展的主动权