set
类似于数组,但元素都是唯一的
Set判断元素是否相等,采用类似于===的方式:
- NaN和NaN是相同的
- 两个对象是不相等的
基本操作
- add(value):添加某个值,返回 Set 结构本身。
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
- has(value):返回一个布尔值,表示该值是否为Set的成员。
- clear():清除所有成员,没有返回值。
Array.form方法可以将Set转换为array
对set的遍历
- set.keys() # set没有键值,所以会返回value
- set.values()
- set.entries()
- set.forEach()
- for(let a of set)
- ...set
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}
// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}
Map
Javascript的对象本质上是键值对的集合,并且只能用字符串当做键;
Map也是键值对的集合,但是能够适用各种类型作为键
const m = new Map();
const o = {p: 'Hello World'};
m.set(o, 'content')
m.get(o) // "content"
m.has(o) // true
m.delete(o) // true
m.has(o) // false
网友评论