ES6中Iterator与for..of..遍历用法分析


Posted in Javascript onMarch 31, 2017

本文实例讲述了ES6中Iterator与for..of..遍历用法。分享给大家供大家参考,具体如下:

Iterator与for..of..遍历

1.Iterator概念

遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。JS中有些数据结构具备原生的Iterator接口。为了更好理解这个概念,我们也可以自己写一个Iterator。

var it = simIteractor(['hi','ES5']);
console.log(it.next()); //Object {value: "hi", done: false}
console.log(it.next()); //Object {value: "ES5", done: false}
console.log(it.next()); //Object {value: undefined, done: true}
function simIteractor(array){
    var nextIndex = 0;
    return{
      next: function(){
        return nextIndex < array.length ? {value: array[nextIndex++], done: false} : {value: undefined, done:true};
      }
    };
}

2.ES6中规定,默认的Iterator接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性就可以任务是可遍历的。在ES6中,有3类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set及Map。

3.提到可遍历,就要说说遍历的方法。

for...in... : for-in是为普通对象设计的,你可以遍历得到字符串类型的键,因此不适用于数组遍历

For...of... : for-of循环用来遍历数据—例如数组中的值。for-of循环也可以遍历其它的集合

for-of循环不仅支持数组,还支持大多数类数组对象,例如DOMNodeList。

for-of循环也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历:

or (var chr of "abc"){
  alert(chr); //依次弹出a,b,c
}

它同样支持Map和Set对象遍历。如果你不知道Map 请看 https://3water.com/article/110048.htm,如果你不知道Set 请看 https://3water.com/article/110052.htm 。

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
JS option location 页面跳转实现代码
Dec 27 Javascript
javascript中验证大写字母、数字和中文
Jan 15 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
JS简单判断滚动条的滚动方向实现方法
Apr 28 Javascript
javascript用rem来做响应式开发
Jan 13 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 #Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 #Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 #Javascript
angular.js+node.js实现下载图片处理详解
Mar 31 #Javascript
JavaScript函数柯里化原理与用法分析
Mar 31 #Javascript
js实现一个猜数字游戏
Mar 31 #Javascript
微信小程序页面间通信的5种方式
Mar 31 #Javascript
You might like
PHP脚本的10个技巧(3)
2006/10/09 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
详解Vuex管理登录状态
2017/11/13 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
处理Python中的URLError异常的方法
2015/04/30 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
windows下python和pip安装教程
2018/05/25 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
keras.layer.input()用法说明
2020/06/16 Python
Django配置跨域并开发测试接口
2020/11/04 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
优秀导游先进事迹材料
2014/01/25 职场文书
村居抓节水倡议书
2014/05/19 职场文书
单位婚育证明范本
2014/11/21 职场文书
党校党性分析材料
2014/12/19 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
计划生育工作总结2015
2015/04/03 职场文书