Sha256: d0c2dc7ffb0d812ef497ded3e10475b2d420c83a8aa2f0e9e1aeeafd40e84a31

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

dojo.provide("dojox.lang.functional.zip");

// This module adds high-level functions and related constructs:
//	- zip combiners

// Defined methods:
//	- operate on dense arrays

(function(){
	var df = dojox.lang.functional;

	dojo.mixin(df, {
		// combiners
		zip: function(){
			// summary: returns an array of arrays, where the i-th array 
			//	contains the i-th element from each of the argument arrays.
			// description: This is the venerable zip combiner (for example,
			//	see Python documentation for general details). The returned
			//	array is truncated to match the length of the shortest input
			//	array.
			var n = arguments[0].length, m = arguments.length, i;
			for(i = 1; i < m; n = Math.min(n, arguments[i++].length));
			var t = new Array(n), j;
			for(i = 0; i < n; ++i){
				var p = new Array(m);
				for(j = 0; j < m; p[j] = arguments[j][i], ++j);
				t[i] = p;
			}
			return t;	// Array
		},
		unzip: function(/*Array*/ a){
			// summary: similar to dojox.lang.functional.zip(), but takes 
			//	a single array of arrays as the input.
			// description: This function is similar to dojox.lang.functional.zip() 
			//	and can be used to unzip objects packed by 
			//	dojox.lang.functional.zip(). It is here mostly to provide 
			//	a short-cut for the different method signature.
			return df.zip.apply(null, a);	// Array
		}
	});
})();

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dojo-pkg-1.111.0 data/dojo-release-1.1.1-src/dojox/lang/functional/zip.js
dojo-pkg-1.120.0 data/dojo-release-1.2.0-src/dojox/lang/functional/zip.js
dojo-pkg-1.121.0 data/dojo-release-1.2.1-src/dojox/lang/functional/zip.js
dojo-pkg-1.122.0 data/dojo-release-1.2.2-src/dojox/lang/functional/zip.js
dojo-pkg-1.123.0 data/dojo-release-1.2.3-src/dojox/lang/functional/zip.js