ES6- - Map与Set
Map和Set 是 ES6 中新增的一种数据结构。Map为类似于Object的键值对结构,Set为成员唯一的类数组结构。以Map为例介绍两种数据结构的遍历方法。for...of
var map = new Map([
['age', 19],
['height', 180]
]);
或使用set()函数:var map = new Map();
map.set('age',19).set('height',180);
var set = new Set( [1, 2, 3, 4, 2, 1] ); //接收一个数组作为初始化[...set] //[1,2,3,4]
或使用add()函数: var set = new Set();set.add(1).add(2);
//由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
for (let key of map.keys()) { console.log(key); }
for (let value of map.values()) {
console.log(value);
}
for (let item of map.entries()) {
console.log(`${ item[0] }: ${ item[1] }`);
}
map.forEach((key, value, map) => {
console.log(`${ key }: ${ value }`);
}); // forEach 的第二个参数用来绑定this绑定 this
var reporter = {
report(key, value) {
console.log(`${ key }: ${ value } by reporter object.`);
}
}
map.forEach(function (key, value) {// 使用箭头函数会导致这个 this 是 undefined
this.report(key, value);}, reporter)
//Set 结构没有以下方法
for (let [key, value] of map.entries()) {
console.log(`${ key }: ${ value }`);
}
for (let [key, value] of map) {
console.log(`${ key }: ${ value }`);
}
数据结构间的相互转化:
Map->数组 [...map]
数组->Map new Map([1,2])
Map->object:
for ( let [ key, value ] of map.entries() ){
obj[key] = value;
}
Object->Map:
let map1 = new Map();
for ( let item in a ){
map1.set( item,a[item] )
}
ES6- - Map与Set的更多相关文章
- ES6 & Map & hashMap
ES6 & Map & hashMap 01 two-sum https://leetcode.com/submissions/detail/141732589/ hashMap ht ...
- js es6 map 与 原生对象区别
区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...
- ES6 map与filter
ES6 map与filter 1.map let arr1 = [1,2,3]; let arr2 = arr1.map((value,key,arr) => { console.log(val ...
- ES6 Map to Array
ES6 Map to Array function differentSymbolsNaive(str) { // write code here. const map = new Map(); co ...
- ES6 Map All In One
ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- ES6 Map vs ES5 Object
ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- es6 & map & set
es6 & map & set Map & WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re ...
- ES6 Map/WeakMap
最近项目用ES6来写,许多语法都要逐步熟悉呀,今天收藏下Map用法 1.Map构造器 // 字符串作为key, 和JS对象类似 var map = new Map() // set map.set(' ...
- ES6 - Map
含义和基本用法 Map对象就是简单的键值对映射.其中的键和值可以使任意值.(ps : 对象的键只能是字符串 ) JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构) ...
- 六、es6 map
一.map的特点 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 ...
随机推荐
- 【转】HTTP 协议的历史演变和设计思路
一.HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 最早版本是1991年发布的0.9 ...
- Linux下查看目录文件数和文件大小
一.查看当前目录下文件个数 在linux下查看目录下有多少文件可以用:ls -l 命令查看,ls -lR 递归查看所有目录, 如果文件很多,则用wc命令 和 grep 命令进行过滤. wc命令显示输 ...
- [转]Vue CLI 3搭建vue+vuex 最全分析
原文地址:https://my.oschina.net/wangnian/blog/2051369 一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@ ...
- Freemarke
本文介绍了freemarker的集成.FTL指令.内建函数.运算符等常用操作. 1.为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类 ...
- sigaction和实时信号sigqueue
sigaction函数sigaction函数的功能是用于改变进程接收到特定信号后的行为.int sigaction(int signum, const struct sigaction *act,st ...
- linux : 各个发行版中修改python27默认编码为utf-8
该方法可解决robot报错:'ascii' codec can't encode character u'\xf1' in position 16: ordinal not in range(128 ...
- Consul1.5.0 带ACL控制集群搭建
Consul Cluster with ACL1.机器规划2.先配置好三个Server,并启动一遍.3.生成并配置agent-token,解决server agent ACL block问题4.启动一 ...
- laravel相关知识点
参考地址:http://note.youdao.com/noteshare?id=9899f8328427de449390230c35489934
- grok语法定义
grok默认表达式 Logstash 内置了120种默认表达式,可以查看patterns,里面对表达式做了分组,每个文件为一组,文件内部有对应的表达式模式.下面只是部分常用的. 常用表达式 表达式标识 ...
- 【RSR】RSR如何配置BGP与BFD联动(动态路由)
应用场景 企业租用运营商MSTP线路,配置BGP路由协议上网,由于企业本端出口路由器无法检测到运营商中间链路通信中断,导致路由收敛缓慢,无法快速的切换到其它备份线路,此时可以在路由器上启用BGP与BF ...