<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>集合</title>
</head>
<body>
<script>
function Set(){
this.arr = [];
this.add = add;
this.remove = remove;
this.size = size;
this.union = union; //并集
this.intersect = intersect; //交集
this.subset = subset; //是否是子集
this.difference = difference; //补集
this.show = show;
this.contains = contains;
}
function contains(data){
return this.arr.indexOf(data)>-1 ? true:false;
}
function add(data){
if(this.arr.indexOf(data)<0){
this.arr.push(data);
return true;
}else{
return false;
}
} function remove(data){
var pos = this.arr.indexOf(data);
if(pos >-1){
this.arr.splice(pos,1);
return true;
}else{
return false;
}
} function show(){
return this.arr;
}
function union(set){
var temp = new Set();
for(var i = 0;i<this.arr.length;i++){
temp.add(this.arr[i]);
}
for(var i = 0;i<set.arr.length;i++){
if(!temp.contains(set.arr[i])){
temp.arr.push(set.arr[i]);
}
}
return temp;
} function intersect(set){
var temp = new Set();
for(var i=0;i<this.arr.length;i++){
if(set.contains(this.arr[i])){
temp.add(this.arr[i]);
}
}
return temp;
} function size(){
return this.arr.length;
}
function subset(set){
if(this.size() > set.size()){
return false;
}else{
for(var member in this.arr){
if(!set.contains(member)){
return false;
}
}
}
return true;
} function difference(set){
var temp = new Set();
for(var i= 0;i<this.arr.length;i++){
if(!set.contains(this.arr[i])){
temp.add(this.arr[i]);
}
}
return temp;
} //
var obj = new Set();
obj.add("zhangsan");
obj.add("lisi");
obj.add("wangwu");
obj.add("zhaoliu"); console.log(obj.show());
obj.remove("wangwu");
console.log(obj.show()); var obj1 = new Set();
obj1.add("javascript");
obj1.add("zhangsan"); console.log(obj.union(obj1));
console.log(obj.intersect(obj1));
console.log(obj.subset(obj1));
console.log(obj.difference(obj1));
</script>
</body>
</html>

JavaScript数据结构-14.集合的更多相关文章

  1. 学习javascript数据结构(三)——集合

    前言 总括: 本文讲解了数据结构中的[集合]概念,并使用javascript实现了集合. 原文博客地址:学习javascript数据结构(三)--集合 知乎专栏&&简书专题:前端进击者 ...

  2. 学习javascript数据结构(二)——链表

    前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结 ...

  3. 学习javascript数据结构(四)——树

    前言 总括: 本文讲解了数据结构中的[树]的概念,尽可能通俗易懂的解释树这种数据结构的概念,使用javascript实现了树,如有纰漏,欢迎批评指正. 原文博客地址:学习javascript数据结构( ...

  4. JavaScript数据结构——集合、字典和散列表

    集合.字典和散列表都可以存储不重复的值. 在集合中,我们感兴趣的是每个值本身,并把它当作主要元素.在字典和散列表中,我们用 [键,值] 的形式来存储数据. 集合(Set 类):[值,值]对,是一组由无 ...

  5. 为什么我要放弃javaScript数据结构与算法(第六章)—— 集合

    前面已经学习了数组(列表).栈.队列和链表等顺序数据结构.这一章,我们要学习集合,这是一种不允许值重复的顺序数据结构. 本章可以学习到,如何添加和移除值,如何搜索值是否存在,也可以学习如何进行并集.交 ...

  6. JavaScript数据结构与算法-集合练习

    集合的实现 function Set () { this.dataStore = []; this.add = add; this.remove = remove; this.size = size; ...

  7. 为什么我要放弃javaScript数据结构与算法(第十一章)—— 算法模式

    本章将会学习递归.动态规划和贪心算法. 第十一章 算法模式 递归 递归是一种解决问题的方法,它解决问题的各个小部分,直到解决最初的大问题.递归通常涉及函数调用自身. 递归函数是像下面能够直接调用自身的 ...

  8. 为什么我要放弃javaScript数据结构与算法(第九章)—— 图

    本章中,将学习另外一种非线性数据结构--图.这是学习的最后一种数据结构,后面将学习排序和搜索算法. 第九章 图 图的相关术语 图是网络结构的抽象模型.图是一组由边连接的节点(或顶点).学习图是重要的, ...

  9. 为什么我要放弃javaScript数据结构与算法(第二章)—— 数组

    第二章 数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构.JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组.本章将深入学习数组数据结构和它的能力. 为什么 ...

随机推荐

  1. 如何把asp.net上的服务在iis调试

    1,在iis上部署一个应用,路径指向工程目录 2,在vs2012(其他版本没试过,10都很久没用不记得了)中打开网站,选择本地iis 3,在你想调试的地方设置断点,F5,搞定!

  2. .Net core 2.0的数据初始化

    在StartUp.cs里面,添加Seed方法 public static void Seed(IApplicationBuilder applicationBuilder) { using (var ...

  3. C# SQLite 数据库

    数据库 Oracle.Oracle的应用,主要在传统行业的数据化业务中,比如:银行.金融这样的对可用性.健壮性.安全性.实时性要求极高的业务 MS SQL Server.windows生态系统的产品, ...

  4. Schema validation found non-datatype errors

    Private Sub UpdateClaim(ByVal Status As String, ByVal Request As String) '======================' Im ...

  5. C# 收银机顾显(客显)及打印小票(58热敏打印机)

    最近做winform收银机,设计顾显及打印小票总结. 1.顾显(串口COM1) 只涉及到总计,所以只是简单的功能. public static ClientDisplayResult Display( ...

  6. Codeforces Beta Round #75 (Div. 1 Only) B. Queue 二分

    B. Queue Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 codeforces.com/problemset/problem/91/B Descrip ...

  7. 474. Ones and Zeroes

    In the computer world, use restricted resource you have to generate maximum benefit is what we alway ...

  8. CASE语句用法学习

    A. 使用带有 CASE 简单表达式的 SELECT 语句 SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' ...

  9. django rest framework 向数据库中插入数据时处理外键的方法

    一.models.py中 from django.db import models class UserModel(models.Model) user_name = models.CharField ...

  10. express 直接返回HTML文件

    一般情况下用的是模板引擎,如jade: res.render('detail',{ // 使用render() #http://www.expressjs.com.cn/4x/api.html#res ...