jsBenchmarker

Source of "jquery_map"

Back
(function(){
	
	function jquery_map( elems, callback ) {
		var ret = [];
	
		for ( var i = 0, length = elems.length; i < length; i++ ) {
			var value = callback( elems[ i ], i );
	
			if ( value !== null && value != undefined ) {
				if ( value.constructor != Array )
					value = [ value ];
	
				ret = ret.concat( value );
			}
		}
	
		return ret;
	};
	function my_map( elems, callback ) {
		var ret = [], value;
	
		for ( var i = 0, length = elems.length; i < length; ++i ) {
			value = callback( elems[ i ], i );
	
			if ( value != null )
				ret[ ret.length ] = value;
		}
	
		return ret.concat.apply( [], ret );
	};
	
	var array = Array(50), 
		map = function( v, i ){
			var t = i % 3;
			return t == 0 ? null :
				   t == 1 ? i :
				   [ i, i, i, i ];
		};
	
	Benchmarker().compare( { times:100, attempts:5, wait:1000 }, {
		jquery_map:function(){
			jquery_map( array, map );
		},
		my_map:function(){
			my_map( array, map );
		}
	});
	
	/*
	alert( jquery_map( array, map ).join('') );
	alert( my_map( array, map ).join('') );
	/* */
	
})();