1、Set

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set 本身是一个构造函数,用来生成 Set 数据结构。

const s = new Set();
console.log(typeof s); // object
// 通过add方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
console.log(s); // Set { 2, 3, 5, 4 }
console.log(...s); // 2, 3, 5, 4
for (let i of s) { // for ... of ... 遍历set
  console.log(i);
} // 2 3 5 4

Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

// 例一
const set = new Set([1, 2, 3, 4, 4]);
console.log([...set]); // [1, 2, 3, 4] // 例二
const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]);
console.log(items.size); // 5

2、Map

  现在,我想拿DOM节点作为对象的键,或者我拿其他对象作为键,这时,就可以使用map了

  JS对象,本质上是键值对的形式(hash结构),但是键只能是字符串的形式,给js带来很大的限制

  为了解决这个问题,ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以 当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值 对”的数据结构,Map 比 Object 更合适。

const m = new Map();
const o = {p: 'Hello World'
};m.set(o, 'holle world!')
m.get(o) // "holle world!" 

m.has(o) // true
m.delete(o) // true
m.has(o) // false\

  作为构造函数, Map 也可以接受一个数组作为参数。 该数组的成员是一个个表示键值对的数组。

const map = new Map([['name', '张三'],['title', 'Author']
]);map.size // 2
map.has('name') // true
map.get('name') // "张三"
map.has('title') // true
map.get('title') // "Author"

Map构造函数接受数组作为参数,实际上执行的是下面的算法。
const items = [['name', '张三'],['title', 'Author']
];const map = new Map();items.forEach(([key, value]) => map.set(key, value));

转载于:https://www.cnblogs.com/houfee/p/10133111.html

Set 和 Map 数据结构相关推荐

  1. 【ES6】JS的Set和Map数据结构

    [ES6]JS的Set和Map数据结构 一.Set 1.基本用法 2.4种操作方法 3.4种遍历方法 4.Set的应用 1)Set转化为数组 2)去除数组的重复元素 3)实现并集(Union).交集( ...

  2. ES6 Map数据结构

    Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. ES6 提供了 Map 数据结构.它类似于对 ...

  3. ES6之路第九篇:Set和Map数据结构

    set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 1 const s = new S ...

  4. es6--set数组去重,Map数据结构

    set结构不会添加重复的值. Array.from方法可以将Set结构转为数组,这就提供了去除数组重复成员的方法 function dedupe(array){ return Array.from(n ...

  5. go map数据结构

    map数据结构 key-value的数据结构,又叫字典或关联数组 声明: var map1 map[keytype]valuetype var a map[string]string var a ma ...

  6. “睡服”面试官系列第七篇之map数据结构(建议收藏学习)

    目录 1map 1.1含义和基本用法 1.2实例的属性和操作方法 1.2.1size属性 1.2.2set(key, value) 1.2.3get(key) 1.2.4has(key) 1.2.5d ...

  7. mysql存储map数据结构_map数据结构

    Go map实现原理 - 恋恋美食的个人空间 - OSCHINA - 中文开源技术交流社区 https://my.oschina.net/renhc/blog/2208417 // A header ...

  8. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构

    往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...

  9. ES6中 Map 数据结构

    ES6新增了 Map数据结构,Map对象保存键值对,任何值(原始值或对象)都可以作为一个键或一个值. 基本用法 let map = new Map(); let obj = {name: 'Leon' ...

最新文章

  1. 无电路板的微型电路制作
  2. Web API之service worker
  3. JavaScript实现knight Tour骑士之旅算法(附完整源码)
  4. C++重载运算符最好声明为友元
  5. CoCos2D-X-2.1.5在Eclipse中导入HelloCpp项目搭建
  6. 2021-04-10 【数据库导数】数字类型的列如果位数过长,变为科学计数法问题
  7. mysql date类型加一个月jdbc_JDBC操作数据库Date类型数据
  8. Java学习之JDK的安装与配置
  9. Eval绑定日期时,修改日期显示的格式
  10. AC日记——[USACO10MAR]仓配置Barn Allocation 洛谷 P1937
  11. 【统计分析】3 空间点模型
  12. 后台传一个状态值,如果在vue设置成正常停用?
  13. 算法设计与分析(第2版)屈婉玲 刘田 张立昂 王捍贫编著 第二章课后习题答案
  14. 平衡自行车的原理以及制作方法
  15. Linux下构建一个deb软件安装包
  16. 2013年12月CCF软考试题
  17. 网络笔记(24) 云中网络:自己拿地成本高,购买公寓更灵活
  18. 开发调试指令大全--(博通开发调试命令)
  19. 【Power Automate】日期格式化函数formatDateTime详细说明及示例
  20. 神州数码交换机路由器防火墙ACAP基本配置

热门文章

  1. 局域网无法上网解决处理方法
  2. 《微型计算机2014年》更新至12月下
  3. ORACLE导入TXT文件数据的解决思路
  4. Repeater控件最后一笔记录高亮显示
  5. 百度之星12月30号题目之维基解密
  6. 等概率随机函数的实现
  7. wpf 绘制rectangle 代码
  8. 转载:为什么使用ibatis而不用spring jdbcTemplate
  9. D3-栈[Java数据结构和算法]
  10. Hbase集群搭建二(Hadoop搭建)