时间:2021-05-26
本文实例讲述了JS集合set类的实现与使用方法。分享给大家供大家参考,具体如下:
js集合set类的实现
function Set() { this.dataStore = []; this.add = add;//新增元素 this.remove = remove;//删除元素 this.size = size;//集合的元素个数 this.union = union;//求并集 this.contains = contains;//判断一个集合中是否包含某个元素 this.intersect = intersect;//交集 this.subset = subset;//判断一个集合是否是另一个的子集 this.difference = difference;//求补集 this.show = show;//将集合元素显示出来}function add(data) { if (this.dataStore.indexOf(data) < 0) { this.dataStore.push(data); return true; } else { return false; }}function remove(data) { var pos = this.dataStore.indexOf(data); if (pos > -1) { this.dataStore.splice(pos,1); return true; } else { return false; }}function size() { return this.dataStore.length;}function show() { return "[" + this.dataStore + "]";}function contains(data) { if (this.dataStore.indexOf(data) > -1) { return true; } else { return false; }}function union(set) { 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;}function intersect(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;}function subset(set) { if (this.size() > set.size()) { return false; } else { for(var member in this.dataStore) { if (!set.contains(member)) { return false; } } } return true;}function difference(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();var it = new Set();cis.add("Clayton");cis.add("Jennifer");cis.add("Danny");it.add("Bryan");it.add("Clayton");it.add("Jennifer");var diff = new Set();diff = cis.difference(it);console.log(cis.show() + " difference " + it.show() + " -> " + diff.show());这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C++set的使用方法详解set也是STL中比较常见的容器。set集合容器实现了红黑树的平衡二叉检索树的数据结构,它会自动调整二叉树的排列,把元素放到适当的位置
本文实例讲述了JS基于对象的链表实现与使用方法。分享给大家供大家参考,具体如下:链表是一种在物理内存上不连续的数据结构。原理如下图所示:示例代码:/*JS实现一
本文实例讲述了JS双向链表实现与使用方法。分享给大家供大家参考,具体如下:前面一篇讲述了《JS基于对象的链表实现与使用方法》,这里的双向链表通过增加一个prev
JavaSet集合的遍历及实现类的比较Java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法packagecom.sort;im
Set集合与List一样,都是继承自Collection接口,常用的实现类有HashSet和TreeSet。值得注意的是,HashSet是通过HashMap来实