Set 和 Map 数据结构
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"
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 数据结构相关推荐
- 【ES6】JS的Set和Map数据结构
[ES6]JS的Set和Map数据结构 一.Set 1.基本用法 2.4种操作方法 3.4种遍历方法 4.Set的应用 1)Set转化为数组 2)去除数组的重复元素 3)实现并集(Union).交集( ...
- ES6 Map数据结构
Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. ES6 提供了 Map 数据结构.它类似于对 ...
- ES6之路第九篇:Set和Map数据结构
set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 1 const s = new S ...
- es6--set数组去重,Map数据结构
set结构不会添加重复的值. Array.from方法可以将Set结构转为数组,这就提供了去除数组重复成员的方法 function dedupe(array){ return Array.from(n ...
- go map数据结构
map数据结构 key-value的数据结构,又叫字典或关联数组 声明: var map1 map[keytype]valuetype var a map[string]string var a ma ...
- “睡服”面试官系列第七篇之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 ...
- mysql存储map数据结构_map数据结构
Go map实现原理 - 恋恋美食的个人空间 - OSCHINA - 中文开源技术交流社区 https://my.oschina.net/renhc/blog/2208417 // A header ...
- es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构
往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...
- ES6中 Map 数据结构
ES6新增了 Map数据结构,Map对象保存键值对,任何值(原始值或对象)都可以作为一个键或一个值. 基本用法 let map = new Map(); let obj = {name: 'Leon' ...
最新文章
- 无电路板的微型电路制作
- Web API之service worker
- JavaScript实现knight Tour骑士之旅算法(附完整源码)
- C++重载运算符最好声明为友元
- CoCos2D-X-2.1.5在Eclipse中导入HelloCpp项目搭建
- 2021-04-10 【数据库导数】数字类型的列如果位数过长,变为科学计数法问题
- mysql date类型加一个月jdbc_JDBC操作数据库Date类型数据
- Java学习之JDK的安装与配置
- Eval绑定日期时,修改日期显示的格式
- AC日记——[USACO10MAR]仓配置Barn Allocation 洛谷 P1937
- 【统计分析】3 空间点模型
- 后台传一个状态值,如果在vue设置成正常停用?
- 算法设计与分析(第2版)屈婉玲 刘田 张立昂 王捍贫编著 第二章课后习题答案
- 平衡自行车的原理以及制作方法
- Linux下构建一个deb软件安装包
- 2013年12月CCF软考试题
- 网络笔记(24) 云中网络:自己拿地成本高,购买公寓更灵活
- 开发调试指令大全--(博通开发调试命令)
- 【Power Automate】日期格式化函数formatDateTime详细说明及示例
- 神州数码交换机路由器防火墙ACAP基本配置