incubator-xap-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mtu...@apache.org
Subject svn commit: r429407 - /incubator/xap/trunk/src/xap/util/ArrayHelper.js
Date Mon, 07 Aug 2006 17:31:44 GMT
Author: mturyn
Date: Mon Aug  7 10:31:44 2006
New Revision: 429407

URL: http://svn.apache.org/viewvc?rev=429407&view=rev
Log:
Added a unique() method---not in javascript yet--which returns the unique elements of the
given array, in the original order of the first instance of each ([a,b,c,a,d]--->[a,b,c,d]).

Modified:
    incubator/xap/trunk/src/xap/util/ArrayHelper.js

Modified: incubator/xap/trunk/src/xap/util/ArrayHelper.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/util/ArrayHelper.js?rev=429407&r1=429406&r2=429407&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/util/ArrayHelper.js (original)
+++ incubator/xap/trunk/src/xap/util/ArrayHelper.js Mon Aug  7 10:31:44 2006
@@ -95,3 +95,33 @@
 	}
 	return array ;
 }
+
+
+/**
+ * Returns the elements in an array, unique with respect to "==", and retaining ordering
of the
+ * first instances of the non-redundant elements (e.g. [a,b,c,a,d]--> [a.b.c]).  Uses
Object's
+ * Set-like properties to prune redundants.<p>
+ * Supposedly, there will be an <array>.unique() in some notional 
+ * future version of the script language....
+ * @param {Array} array The array to which to add.
+ * @return {Array} The altered[?] array, so we can chain this.
+ */ 
+xap.util.ArrayHelper.unique = function( arr ){
+	if (!arr ){
+		return arr;
+	}	
+	
+	var alreadyMoved  = new Object() ;
+
+	var uniques = [] ;
+	for(var ii=0; ii< arr.length ; ++ii){
+		var elem =  arr[ii] ;
+		if( !alreadyMoved[elem]  ){
+			uniques.push( elem ) ;
+			// Don't add it twice:
+			alreadyMoved[elem]  =  true  ;
+		}
+	}
+	return uniques ;
+}
+



Mime
View raw message