//封裝集合類 function Set(){ //屬性 this.items={} //方法 //add方法 Set.prototype.add=function(value){ //判斷當前集合中是否已經包含了該元素 if(this.has(value)){ return false } //將元素添加到集合中 this.items[value]=value return true } //has方法(指定對象自身屬性中是否具有指定的屬性) Set.prototype.has=function(value){ return this.items.hasOwnProperty(value) } //remove方法 Set.prototype.remove=function(value){ //1.判斷該集合中是否包含該元素 if(!this.has(value)) return false //2.將元素從屬性中刪除 delete this.items[value] return true } //clear方法 Set.prototype.clear=function(){ this.items={} } //size方法 Set.prototype.size=function(){ return Object.keys(this.items).length } //獲取集合中所有的值 Set.prototype.values=function(){ return Object.keys(this.items) } } //測試 Set 類 //1.常見 set 類對象 var set=new Set() //2.添加 元素 alert(set.add('abc')) alert(set.add('abc')) alert(set.add('cba')) alert(set.add('nba')) alert(set.add('mba')) alert(set.values()) //3.刪除元素 alert(set.remove('abc')) alert(set.remove('abc')) alert(set.values()) //4.has方法 alert(set.has('abc')) //5.獲取元素的個數 alert(set.size()) set.clear() alert(set.size())