ES6个人学习整理(五)——Set和Map
2015-12-17 00:40
295 查看
Set和Map
Set
无序且不可重复
- constructor
var set = new Set(); // 支持解构赋值 [2,3,5,4,5,2,2].map(x => set.add(x)); // 可传入一个进行赋值 var set = new Set([1, 2, 3, 4, 5]);
size —— 返回成员数量
add(value) —— 添加成员
delete(value) —— 删除成员
has(value) —— 表示是否含有成员
clear() —— 清空set
可用map和filter
// 数组去重 let a = [1, 2, 3, 2, 1]; a = Array.from(new Set(a)); let arr1 = [1, 2, 3]; let arr2 = [2, 3, 4]; let set1 = new Set(arr1); let set2 = new Set(arr2); // 并集 let set = Array.from(new Set([...set1, ...set2])); // 交集 let set = Array.from([...set1].filter(item => set2.has(item))); // 差集 let set = Array.from([...[...set1].filter(item => !set2.has(item)), ...[...set2].filter(item => !set1.has(item))]);
WeakSet
weakset跟set结构相似,也是不能重复的集合。 区别的地方在于: 1. 成员只能是对象(数组,对象,类数组) 2. 不可遍历
add()
delete()
has()
Map
可将各种类型的值作为key
- constructor
var map = new Map(); // 可接受成员为表示键值对的数组 var map = new Map([['name', 'zhangsan'], ['age', 18]]);
size —— 返回成员数量
set(key, value) —— 添加键值对(key跟内存地址绑定,有则覆盖)
get(key) —— 返回对应键的值
has(key) —— 表示键是否存在
delete(key) —— 删除键值对
clear() —— 清除
Set和Map的遍历方法
keys()values()
entries() —— 键值对
forEach()
WeakMap
weakmap跟map结构相似,唯一的区别是只接受对象作为键名
- get()
- set()
- has()
- delete()
相关文章推荐
- 大整数的加减乘除(C++程序设计第4周)
- 【jQuery】:last-child子元素过滤选择器
- 【C语言提高34】数组指针变量的定义
- 个人总结面试题
- 利用系统缓存提高PostgreSQL操作效率
- 实时公交位置系统的实现
- 阿里巴巴开源项目 Druid 负责人温少访谈
- 利用joomla 3.2.0 – 3.4.4 注入漏洞到getshell
- Android 事件分发机制View篇
- mysql 建立用户
- 图形验证码最佳实践
- 运算符重载编程题3(C++程序设计第4周)
- LeetCode 118: Pascal's Triangle
- html 获取宽高
- Composer
- C/C++常识
- 运算符重载编程题2(C++程序设计第4周)
- ubuntu 安装jdk7小结
- 【UESTC】2015 UESTC Training for Data Structures
- java 注解