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的更多相关文章

  1. ES6 & Map & hashMap

    ES6 & Map & hashMap 01 two-sum https://leetcode.com/submissions/detail/141732589/ hashMap ht ...

  2. js es6 map 与 原生对象区别

    区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...

  3. ES6 map与filter

    ES6 map与filter 1.map let arr1 = [1,2,3]; let arr2 = arr1.map((value,key,arr) => { console.log(val ...

  4. ES6 Map to Array

    ES6 Map to Array function differentSymbolsNaive(str) { // write code here. const map = new Map(); co ...

  5. ES6 Map All In One

    ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  6. ES6 Map vs ES5 Object

    ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  7. es6 & map & set

    es6 & map & set Map & WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re ...

  8. ES6 Map/WeakMap

    最近项目用ES6来写,许多语法都要逐步熟悉呀,今天收藏下Map用法 1.Map构造器 // 字符串作为key, 和JS对象类似 var map = new Map() // set map.set(' ...

  9. ES6 - Map

    含义和基本用法   Map对象就是简单的键值对映射.其中的键和值可以使任意值.(ps : 对象的键只能是字符串 ) JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构) ...

  10. 六、es6 map

    一.map的特点 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 ...

随机推荐

  1. 大数据应用期末总评Hadoop综合大作业

    作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 1.将爬虫大作业产生的csv文件上传到HDFS 此次作业选取的 ...

  2. VMware网络适配器的选择

    VMware 提供的网络连接有 5 种,分别是"桥接模式"."NAT 模式"."仅主机模式"."自定义"和"L ...

  3. oracle update from多表性能优化一例

    这几天测试java内存数据库,和oracle比较时发下一个update from语句很慢,如下: update business_new set fare1_balance_ratio = (sele ...

  4. Buffon投针问题

  5. xmlns:amq="http://activemq.apache.org/schema/core"报错

    如题,项目集成ActiveMQ是配置文件报错 原因是:Spring命名空间配置错误,缺少相应的spring-bean.很显然,引用不到就是没有jar包啊. 我的解决办法,早pom.xml引用依赖 &l ...

  6. Docker CentOS / Ubuntu容器开启 SSH 服务

    Docker CentOS / Ubuntu容器开启 SSH 服务 在CentOS容器内执行 yum install passwd openssl openssh-server -y # Ubuntu ...

  7. 服务器推送(Server push)技术总结

    1. 短轮询 ajax按一定间隔去请求 2. 长轮询(long Polling) Long Polling的实现很简单,可分为四个过程: 发起Polling发起Polling很简单,只需向服务器发起请 ...

  8. 【计算机视觉】图像着色(Image Colorization)

    (Sometimes technology enhances art. Sometimes it vandalizes art. --- 有时技术会增强艺术,有时它破坏了艺术.) 着色黑白电影是一个可 ...

  9. [LeetCode] 787. Cheapest Flights Within K Stops K次转机内的最便宜航班

    There are n cities connected by m flights. Each fight starts from city u and arrives at v with a pri ...

  10. 【SSH进阶之路】Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)

    我们前面的三篇博文,简单易懂的介绍了为什么要使用IOC[实例讲解](二).和Spring的IOC原理[通俗解释](三)以及依赖注入的两种常用实现类型(四),这些都是刚开始学习Spring IoC容器时 ...