数据结构84-集合常见操作之子集代码
2024-08-07 09:46:39 阅读次数:16
javascript,编程开发
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>集合封装</title>
</head>
<body>
<script>
function Set(){
this.items={}
Set.prototype.add=function(value){
if(this.has(value)){
return false
}
//判断集合中是否又这个元素
this.items[value]=value
return true
}
Set.prototype.has=function(value){
this.items.hasOwnProperty(value)
}
Set.prototype.remove=function(value){
if(!this.has(value)){
return false
}
delete this.items[value]
return true
}
Set.prototype.clear=function(){
this.items={}
}
Set.prototype.size=function(){
return Object.keys(this.items).length
}
Set.prototype.values=function(){
return Object.keys(this.items)
}
Set.prototype.union=function(otherSet){
//创建一个新的集合
var unionSet=new Set()
var values=this.values()
for(var i=0;i<values.length;i++){
unionSet.add(values[i])
}
values=otherSet.values()
for(var i=0;i<values.length;i++){
unionSet.add(values[i])
}
return unionSet
}
Set.prototype.intersection=function(otherSet){
var intersection=new Set()
var values=this.values()
for(var i=0;i<values.length;i++){
unionSet.add(values[i])
if(otherSet.has(item)){
intersection.add(item)
}
}
return intersection
}
Set.prototype.difference=function(otherSet){
var difference=new Set()
for(var i=0;i<values.length;i++){
var item=values[i]
if(!otherSet.has(item)){
difference.add(item)
}
}
return difference
}
Set.prototype.subset=function(otherSet){
var values=this.values()
for(var i=0;i<values.length;i++){
var item=values[i]
if(!otherSet.has(item)){
return false
}
}
return true
}
}
</script>
</body>
</html>
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_15460007/6050448,作者:前端导师歌谣,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:实现文字代码彩色打印特效
下一篇:Android计时器TimerTask,Timer,Handler