set.js

来自「一个简单的AJAX图书展示平台」· JavaScript 代码 · 共 85 行

JS
85
字号
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.collections.Set");dojo.require("dojo.collections.Collections");dojo.require("dojo.collections.ArrayList");//	straight up sets are based on arrays or array-based collections.dojo.collections.Set = new function(){	this.union = function(setA, setB){		if (setA.constructor == Array) var setA = new dojo.collections.ArrayList(setA);		if (setB.constructor == Array) var setB = new dojo.collections.ArrayList(setB);		if (!setA.toArray || !setB.toArray) dojo.raise("Set operations can only be performed on array-based collections.");		var result = new dojo.collections.ArrayList(setA.toArray());		var e = setB.getIterator();		while(!e.atEnd()){			var item=e.get();			if(!result.contains(item)){				result.add(item);			}		}		return result;	};	this.intersection = function(setA, setB){		if (setA.constructor == Array) var setA = new dojo.collections.ArrayList(setA);		if (setB.constructor == Array) var setB = new dojo.collections.ArrayList(setB);		if (!setA.toArray || !setB.toArray) dojo.raise("Set operations can only be performed on array-based collections.");		var result = new dojo.collections.ArrayList();		var e = setB.getIterator();		while(!e.atEnd()){			var item=e.get();			if(setA.contains(item)){				result.add(item);			}		}		return result;	};	//	returns everything in setA that is not in setB.	this.difference = function(setA, setB){		if (setA.constructor == Array) var setA = new dojo.collections.ArrayList(setA);		if (setB.constructor == Array) var setB = new dojo.collections.ArrayList(setB);		if (!setA.toArray || !setB.toArray) dojo.raise("Set operations can only be performed on array-based collections.");		var result = new dojo.collections.ArrayList();		var e=setA.getIterator();		while(!e.atEnd()){			var item=e.get();			if(!setB.contains(item)){				result.add(item);			}		}		return result;	};	this.isSubSet = function(setA, setB) {		if (setA.constructor == Array) var setA = new dojo.collections.ArrayList(setA);		if (setB.constructor == Array) var setB = new dojo.collections.ArrayList(setB);		if (!setA.toArray || !setB.toArray) dojo.raise("Set operations can only be performed on array-based collections.");		var e = setA.getIterator();		while(!e.atEnd()){			if(!setB.contains(e.get())){				return false;			}		}		return true;	};	this.isSuperSet = function(setA, setB){		if (setA.constructor == Array) var setA = new dojo.collections.ArrayList(setA);		if (setB.constructor == Array) var setB = new dojo.collections.ArrayList(setB);		if (!setA.toArray || !setB.toArray) dojo.raise("Set operations can only be performed on array-based collections.");		var e = setB.getIterator();		while(!e.atEnd()){			if(!setA.contains(e.get())){				return false;			}		}		return true;	};}();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?