es6的一些用法

144 阅读1分钟

set的用法

Set

定义:类似于数组的数据结构,成员值都是唯一且没有重复的值 声明:const set = new Set(arr) 入参:具有Iterator接口的数据结构 属性

constructor:构造函数,返回Set size:返回实例成员总数

方法

add():添加值,返回实例

const setArr = new Set(["哈哈", "呵呵", "呜呜"]);
setArr.add("啦啦");
Set(4) {"哈哈", "呵呵", "呜呜", "啦啦"}

delete():删除值,返回布尔值

const setArr1 = new Set(["哈哈", "呵呵", "呜呜"]);
setArr1.delete("呜呜")
true

has():检查值,返回布尔值

const setArr2 = new Set(["哈哈", "呵呵", "呜呜"]);
setArr2.has("呜呜")
true

clear():清除所有成员

keys():返回以属性值为遍历器的对象

values():返回以属性值为遍历器的对象

entries():返回以属性值和属性值为遍历器的对象

forEach():使用回调函数遍历每个成员

应用场景

去重字符串:[...new Set(str)].join("") 去重数组:[...new Set(arr)]或Array.from(new Set(arr)) 集合数组

声明:const a = new Set(arr1)、const b = new Set(arr2) 并集:new Set([...a, ...b]) 交集:new Set([...a].filter(v => b.has(v)))

var intersect = new Set([...new Set(["哈哈", "呵呵", "呜呜"])].filter(x => new Set(["呜呜", "呵呵", "嘻嘻"]).has(x)));console.log(intersect);

差集:new Set([...a].filter(v => !b.has(v)))

映射集合

声明:let set = new Set(arr) 映射:set = new Set([...set].map(v => v * 2))或set = new Set(Array.from(set, v => v * 2))