collections.js

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

JS
126
字号
/*	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.Collections");dojo.collections={Collections:true};dojo.collections.DictionaryEntry=function(/* string */k, /* object */v){	//	summary	//	return an object of type dojo.collections.DictionaryEntry	this.key=k;	this.value=v;	this.valueOf=function(){ 		return this.value; 	//	object	};	this.toString=function(){ 		return String(this.value);	//	string 	};}/*	Iterators *	The collections.Iterators (Iterator and DictionaryIterator) are built to *	work with the Collections included in this namespace.  However, they *can* *	be used with arrays and objects, respectively, should one choose to do so. */dojo.collections.Iterator=function(/* array */arr){	//	summary	//	return an object of type dojo.collections.Iterator	var a=arr;	var position=0;	this.element=a[position]||null;	this.atEnd=function(){		//	summary		//	Test to see if the internal cursor has reached the end of the internal collection.		return (position>=a.length);	//	bool	};	this.get=function(){		//	summary		//	Test to see if the internal cursor has reached the end of the internal collection.		if(this.atEnd()){			return null;		//	object		}		this.element=a[position++];		return this.element;	//	object	};	this.map=function(/* function */fn, /* object? */scope){		//	summary		//	Functional iteration with optional scope.		var s=scope||dj_global;		if(Array.map){			return Array.map(a,fn,s);	//	array		}else{			var arr=[];			for(var i=0; i<a.length; i++){				arr.push(fn.call(s,a[i]));			}			return arr;		//	array		}	};	this.reset=function(){		//	summary		//	reset the internal cursor.		position=0;		this.element=a[position];	};}/*	Notes: *	The DictionaryIterator no longer supports a key and value property; *	the reality is that you can use this to iterate over a JS object *	being used as a hashtable. */dojo.collections.DictionaryIterator=function(/* object */obj){	//	summary	//	return an object of type dojo.collections.DictionaryIterator	var a=[];	//	Create an indexing array	var testObject={};	for(var p in obj){		if(!testObject[p]){			a.push(obj[p]);	//	fill it up		}	}	var position=0;	this.element=a[position]||null;	this.atEnd=function(){		//	summary		//	Test to see if the internal cursor has reached the end of the internal collection.		return (position>=a.length);	//	bool	};	this.get=function(){		//	summary		//	Test to see if the internal cursor has reached the end of the internal collection.		if(this.atEnd()){			return null;		//	object		}		this.element=a[position++];		return this.element;	//	object	};	this.map=function(/* function */fn, /* object? */scope){		//	summary		//	Functional iteration with optional scope.		var s=scope||dj_global;		if(Array.map){			return Array.map(a,fn,s);	//	array		}else{			var arr=[];			for(var i=0; i<a.length; i++){				arr.push(fn.call(s,a[i]));			}			return arr;		//	array		}	};	this.reset=function() { 		//	summary		//	reset the internal cursor.		position=0; 		this.element=a[position];	};};

⌨️ 快捷键说明

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