集合
function Set(){
let items = {};
//has方法,值是否在集合中
this.has = function(value){
return value in items;
}
this.has = function(value){
return items.hasOwnProperty(value);
}
//add方法添加值
this.add = function(value){
if(!this.has(value)){
items[value] = value;
return true;
}
return false;
}
//remove方法,验证值是否在集合中,存在就移除
this.remove = function(value){
if(this.has(value)){
delete items[value];
return true;
}
return false;
}
//移除集合中的所有的值
this.clear = function(){
items = {};
}
//size方法,返回集合中有多少项
this.size = function(){
return Object.keys(items).length;
}
//或
this.size = function(){
let count = 0;
for(let key in items){
if(items.hasOwnProperty(key))
++count;
}
return count;
}
//values(),返回一个包含集合中所有值的数组
this.values = function(){
let values = [];
for(let i=0,keys=Object.keys(items);i<keys.length;i++){
values.push(items[keys[i]]);
}
return values;
}
//或
this.values = function(){
let values = [];
for(let key in items){
if(items.hasOwnProperty(key)){
values.push(items[key]);
}
}
return values;
}
}