es 6中for in与for of适用对象
2024-10-21 11:28:44
在 ES6 中提供了 for-of,可以很方便的遍历数组和类数组,但是却不能遍历对象,这是为什么,与 for-in 仅仅相差一个单词,用途也是遍历,为什么却不能使用在对象上?
查资料后得知,原来 ES6 中引入了 Iterator,只有提供了 Iterator 接口的数据类型才可以使用 for-of 来循环遍历,而 Array、Set、Map、某些类数组如 arguments 等数据类型都默认提供了 Iterator 接口,所以它们可以使用 for-of 来进行遍历
那么原因清楚了,该怎么解决呢?能不能为对象已经其它的一些数据类型提供 Iterator 接口呢
答案是可以的,ES6 同时提供了 Symbol.iterator 属性,只要一个数据结构有这个属性,就会被视为有 Iterator 接口,接着就是如何实现这个接口了,如下就是一个最简实现:
newObj[Symbol.iterator] = function(){
let index = 0
, self = this
, keys = Object.keys( self )
;
return {
next(){
if( index < keys.length ){
return {
value: self[keys[index++]]
, done: false
};
}
else{
return {
value: undefined
, done: true
}
}
}
};
};
最新文章
- 集合(set)-Python3
- Python-Mac 安装 PyQt4
- Enterprise Solution 2.3
- Java Servlet完全教程
- JAVA基础学习day26--正则表达式
- 13Spring_AOP编程(AspectJ)_后置通知
- JS 验证一组input框是否为空的方法
- nginx http跳转到https
- Closures in OOC
- shell脚本if语句的多种条件参数
- VS2012统计代码量
- (转)Mysql哪些字段适合建立索引
- Android : App客户端与后台服务的AIDL通信以及后台服务的JNI接口实现
- oracle-用户和表空间创建
- 如何用JQuery实现单元格 循环变背景色
- layui之select的option叠加问题解决
- Notes of Daily Scrum Meeting(11.11)
- Android N 通知概览及example
- http://www.kankanews.com/ICkengine/archives/18078.shtml
- Properties Editor 中文编辑器 汉化
热门文章
- 图计算引擎分析——Gemini
- 2022年7月15日,第四组,周鹏,JAVA认识的第三天,算法的第一天(╥╯^╰╥)(╥╯^╰╥)
- GIS数据下载合集:遥感、土壤、气象、行政区数据...
- 过年必备!亲戚计算器「GitHub 热点速览 v.23.02」
- NG-ZORRO + angular-cli11 表格横纵向单元格合并,按需设置背景色,解决动态合并单元格动态colspan情况下,nzLeft固定列失效问题,也适用VUE,REACT
- vue学习笔记(一) ---- vue指令(过滤器)
- 支付对接常用的加密方式介绍以及java代码实现
- R数据分析:孟德尔随机化中介的原理和实操
- 图书管理员(NOIP 2017 PJT2)
- 解决centos7 yum和wget都不能使用