课程名称: JavaScript版数据结构与算法
课程章节:第5章 数据结构之“集合”
课程讲师: lewis
课程内容:前端JS的算法基础
课程介绍:
第6章 数据结构之“集合”
6-1 集合简介
6-2 LeetCode:349. 两个数组的交集
6-3 前端与集合:使用 ES6 中 Set
6-4 集合章节总结
一、什么是集合
集合(set)是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。当你想要创建一个数据结构用来保存一些独一无二的元素时就可以用到集合。
二、集合的结构
若_x_是集合_A_的元素,则记作_x_∈_A_。集合中的元素有三个特征:
1).确定性(集合中的元素必须是确定的)
2).互异性(集合中的元素互不相同。例如:集合A={1,a},则a不能等于1)
3).无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。
三、集合的常用方法
add():向集合中添加一个元素。
delete():从集合中删除一个元素。
has():查看集合中是否有该元素存在,如果存在返回true,否则返回false。
clear():删除集合中的所有元素。
size():返回集合中元素的数量。
values():返回一个包含集合中所有元素的数组。
has方法
首先来实现has方法,因为它会被add和delete方法调用
四、课程总结
Set对象的作用
数组去重:
var mySet = new Set([1, 2, 3, 4, 4]);
[...mySet]; // [1, 2, 3, 4]
并集:
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var union = new Set([...a, ...b]); // {1, 2, 3, 4}
交集:
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}
差集:
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var difference = new Set([...a].filter(x => !b.has(x))); // {1}
————————————————