ES6学习教程之Map的常用方法总结


Posted in Javascript onAugust 03, 2017

前言

ES6包含了许多新的语言特性,这会让JS变的更加强大且富有表现力。本文将给大家详细介绍关于ES6中Map的常用方法,话不多说,来一起看看详细的介绍:

1.Map 结构转为数组结构

比较快速的方法是结合使用扩展运算符(...)

let map = new Map([
 [1, 'one'],
 [2, 'two'],
 [3, 'three'],
]);
[...map.keys()]
// [1, 2, 3]
[...map.values()]
// ['one', 'two', 'three']
[...map.entries()]
// [[1,'one'], [2, 'two'], [3, 'three']]
[...map]
// [[1,'one'], [2, 'two'], [3, 'three']]

2.Map 循环遍历

Map 原生提供三个遍历器:

  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。

下面是使用实例。

let map = new Map([
 ['F', 'no'],
 ['T', 'yes'],
]);

for (let key of map.keys()) {
 console.log(key);
}
// "F"
// "T"

for (let value of map.values()) {
 console.log(value);
}
// "no"
// "yes"

for (let item of map.entries()) {
 console.log(item[0], item[1]);
}
// "F" "no"
// "T" "yes"

// 或者
for (let [key, value] of map.entries()) {
 console.log(key, value);
}

// 等同于使用map.entries()
for (let [key, value] of map) {
 console.log(key, value);
}

上面代码最后的那个例子,表示 Map 结构的默认遍历器接口(Symbol.iterator 属性),就是 entries 方法。

map[Symbol.iterator] === map.entries // true

3.Map 获取长度

map.size;

4.Map 获取第一个元素

const m = new Map();
m.set('key1', {})
m.set('keyN', {})

console.log(m.entries().next().value); // [ 'key1', {} ]

获取第一个key

console.log(m.keys().next().value); // key1

获取第一个value

console.log(m.values().next().value); // {}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
巧妙破除网页右键禁用的十大绝招
Aug 12 Javascript
获得Javascript对象属性个数的示例代码
Nov 21 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
Jun 22 Javascript
jquery实现图片切换代码
Oct 13 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
axios学习教程全攻略
Mar 26 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
django使用channels2.x实现实时通讯
Nov 28 Javascript
JavaScript中的各种宽高属性的实现
May 08 Javascript
微信小程序之电影影评小程序制作代码
Aug 03 #Javascript
Form表单上传文件(type="file")的使用
Aug 03 #Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 #Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 #Javascript
浅谈pc端rem字体设置的问题
Aug 03 #Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
Aug 03 #Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 #Javascript
You might like
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
destoon二次开发入门示例
2014/06/20 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python常用模块介绍
2014/11/21 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Django 连接sql server数据库的方法
2018/06/30 Python
使用python根据端口号关闭进程的方法
2018/11/06 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
python plotly绘制直方图实例详解
2019/07/22 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
个人找工作的自我评价
2013/10/17 职场文书
会计专业自我鉴定
2014/02/10 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js