Set of js
2018-06-24 00:45:31来源:未知 阅读 ()
function Set() { this.dataStore = []; }; Set.prototype = { constructor: Set, add: function (data) { if (this.dataStore.indexOf(data) < 0) { this.dataStore.push(data); return true; } else { return false; } }, remove: function(data) { var pos = this.dataStore.indexOf(data); if (pos > -1) { this.dataStore.splice(pos, 1); return true; } else { return false; } }, show: function() { return this.dataStore; }, contains: function(data) { if (this.dataStore.indexOf(data) > -1) { return true; } else { return false; } }, union: function(set) { //合集 if (! (set instanceof Set)) { return; } var tempSet = new Set(); for (var i = 0; i < this.dataStore.length; ++i) { tempSet.add(this.dataStore[i]); } for (var i = 0; i < set.dataStore.length; ++i) { if (!tempSet.contains(set.dataStore[i])) { tempSet.dataStore.push(set.dataStore[i]); } } return tempSet; }, intersect: function (set) { //交集 var tempSet = new Set(); for (var i = 0; i < this.dataStore.length; ++i) { if (set.contains(this.dataStore[i])) { tempSet.add(this.dataStore[i]); } } return tempSet; }, size: function() { return this.dataStore.length; }, subset: function (set) { //判断是否子集 if (this.size() > set.size()) { return false; } else { for (var member in this.dataStore) { //不包含 if (!set.contains(member)) { return false; } } } return true; }, difference: function (set) { //补集 var tempSet = new Set(); for (var i = 0; i < this.dataStore.length; ++i) { if (!set.contains(this.dataStore[i])) { tempSet.add(this.dataStore[i]); } } return tempSet; } }; var cis = new Set(); cis.add("Mike"); cis.add("Clayton"); cis.add("Jennifer"); cis.add("Raymond"); var dmp = new Set(); dmp.add("Raymond"); dmp.add("Cynthia"); dmp.add("Bryan"); var hj = cis.union(dmp); //并集 var jj = cis.intersect(dmp); //交集 console.log(cis.subset(dmp)); //判断是否dmp子集 var bj = cis.difference(dmp); //补集 console.log(hj); console.log(jj); console.log(bj);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:定时器 + 简单的动画效果
下一篇:DOM元素属性值如果设置为对象
- javascript setinterval 的正确语法如何书写 2019-12-08
- 背景线条实现 2019-08-14
- js实现简单进度条 2019-08-14
- 前端笔记之React(六)ES6的Set和Map&immutable和Ra 2019-08-14
- JavaScript中setInterval函数应用常见问题之一(第一个参数 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash