详谈js遍历集合(Array,Map,Set)


Posted in Javascript onApril 06, 2017

Array可以使用下标,Map和Set不能使用下标,ES6引入了iterable类型,Array,Map,Set都属于iterable类型,它们可以使用for...of循环来遍历:

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Array
  alert(x);
}
for (var x of s) { // 遍历Set
  alert(x);
}
for (var x of m) { // 遍历Map
  alert(x[0] + '=' + x[1]);
}

>for...of与for...in的区别:for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

当我们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果:

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
  alert(x); // '0', '1', '2', 'name'
}

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
  alert(x); // 'A', 'B', 'C'
}

>更好的方式:iterable内置的forEach方法:

var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
  // element: 指向当前元素的值
  // index: 指向当前索引
  // array: 指向Array对象本身
  alert(element);//'A','B','C'
});

var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
  alert("参数1="+element+",参数2="+sameElement);
});
//参数1=A,参数2=A
//参数1=B,参数2=B
//参数1=C,参数2=C

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
  alert("参数1="+value+",参数2="+key);
});
//参数1=x,参数2=1
//参数1=y,参数2=2
//参数1=z,参数2=3

以上这篇详谈js遍历集合(Array,Map,Set)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
jQuery简单实现日历的方法
May 04 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
javascript关于继承解析
May 10 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
javascript中this用法实例详解
Apr 06 #Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 #Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 #Javascript
JS优化与惰性载入函数实例分析
Apr 06 #Javascript
大白话讲解JavaScript的Promise
Apr 06 #Javascript
JS实现的二叉树算法完整实例
Apr 06 #Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 #Javascript
You might like
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
wxPython实现文本框基础组件
2019/11/18 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
远程调用的原理
2014/07/05 面试题
会议接待欢迎词
2014/01/12 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
作文之亲情600字
2019/09/23 职场文书
MySQL分布式恢复进阶
2022/07/23 MySQL