详谈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 相关文章推荐
javascript getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
基于jQuery试卷自动排版系统
Jul 18 Javascript
JQuery 图片滚动轮播示例代码
Mar 24 Javascript
IE6-8中Date不支持toISOString的修复方法
May 04 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
Mar 22 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 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 strtr() 函数使用说明
2008/11/21 PHP
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python异常学习笔记
2015/02/03 Python
python实现简单中文词频统计示例
2017/11/08 Python
Django admin美化插件suit使用示例
2017/12/12 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
Python中创建二维数组
2018/10/17 Python
Python数据集切分实例
2018/12/08 Python
Flask-WTF表单的使用方法
2019/07/12 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
序列化Python对象的方法
2020/08/01 Python
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
年会活动策划方案
2014/01/23 职场文书
小班评语大全
2014/05/04 职场文书
个人课题方案
2014/05/08 职场文书
美食节目策划方案
2014/05/31 职场文书
护士找工作求职信
2014/07/02 职场文书
群教个人对照检查材料
2014/08/20 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
主持人开幕词
2015/01/29 职场文书