Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojo._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojo._base.array"] = true;dojo.require("dojo._base.lang");dojo.provide("dojo._base.array");(function(){var _getParts = function(arr, obj, cb){return [(dojo.isString(arr) ? arr.split("") : arr),(obj||dojo.global),// FIXME: cache the anonymous functions we create here?(dojo.isString(cb) ? (new Function("item", "index", "array", cb)) : cb)];}dojo.mixin(dojo, {indexOf: function( /*Array*/ array,/*Object*/ value,/*Integer?*/ fromIndex,/*Boolean?*/ findLast){// summary:// locates the first index of the provided value in the// passed array. If the value is not found, -1 is returned.// description:// For details on this method, see:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOfvar i = 0, step = 1, end = array.length;if(findLast){i = end - 1;step = end = -1;}for(i = fromIndex || i; i != end; i += step){if(array[i] == value){ return i; }}return -1; // Number},lastIndexOf: function(/*Array*/array, /*Object*/value, /*Integer?*/fromIndex){// summary:// locates the last index of the provided value in the passed array.// If the value is not found, -1 is returned.// description:// For details on this method, see:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:lastIndexOfreturn dojo.indexOf(array, value, fromIndex, true); // Number},forEach: function(/*Array*/arr, /*Function*/callback, /*Object?*/obj){// summary:// for every item in arr, call callback with that item as its// only parameter.// description:// Return values are ignored. This function// corresponds (and wraps) the JavaScript 1.6 forEach method. For// more details, see:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:forEach// match the behavior of the built-in forEach WRT empty arrsif(!arr || !arr.length){ return; }// FIXME: there are several ways of handilng thisObject. Is// dojo.global always the default context?var _p = _getParts(arr, obj, callback); arr = _p[0];for(var i=0,l=_p[0].length; i<l; i++){_p[2].call(_p[1], arr[i], i, arr);}},_everyOrSome: function(/*Boolean*/every, /*Array*/arr, /*Function*/callback, /*Object?*/obj){var _p = _getParts(arr, obj, callback); arr = _p[0];for(var i = 0, l = arr.length; i < l; i++){var result = !!_p[2].call(_p[1], arr[i], i, arr);if(every ^ result){return result; // Boolean}}return every; // Boolean},every: function(/*Array*/arr, /*Function*/callback, /*Object?*/thisObject){// summary:// Determines whether or not every item in the array satisfies the// condition implemented by callback.// description:// The parameter thisObject may be used to// scope the call to callback. The function signature is derived// from the JavaScript 1.6 Array.every() function. More// information on this can be found here:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:every// example:// | dojo.every([1, 2, 3, 4], function(item){ return item>1; });// returns false// example:// | dojo.every([1, 2, 3, 4], function(item){ return item>0; });// returns truereturn this._everyOrSome(true, arr, callback, thisObject); // Boolean},some: function(/*Array*/arr, /*Function*/callback, /*Object?*/thisObject){// summary:// Determines whether or not any item in the array satisfies the// condition implemented by callback.// description:// The parameter thisObject may be used to// scope the call to callback. The function signature is derived// from the JavaScript 1.6 Array.some() function. More// information on this can be found here:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:some// example:// | dojo.some([1, 2, 3, 4], function(item){ return item>1; });// returns true// example:// | dojo.some([1, 2, 3, 4], function(item){ return item<1; });// returns falsereturn this._everyOrSome(false, arr, callback, thisObject); // Boolean},map: function(/*Array*/arr, /*Function*/func, /*Function?*/obj){// summary:// applies a function to each element of an Array and creates// an Array with the results// description:// Returns a new array constituted from the return values of// passing each element of arr into unary_func. The obj parameter// may be passed to enable the passed function to be called in// that scope. In environments that support JavaScript 1.6, this// function is a passthrough to the built-in map() function// provided by Array instances. For details on this, see:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:map// example:// | dojo.map([1, 2, 3, 4], function(item){ return item+1 });// returns [2, 3, 4, 5]var _p = _getParts(arr, obj, func); arr = _p[0];var outArr = ((arguments[3]) ? (new arguments[3]()) : []);for(var i=0;i<arr.length;++i){outArr.push(_p[2].call(_p[1], arr[i], i, arr));}return outArr; // Array},filter: function(/*Array*/arr, /*Function*/callback, /*Object?*/obj){// summary:// Returns a new Array with those items from arr that match the// condition implemented by callback. ob may be used to// scope the call to callback. The function signature is derived// from the JavaScript 1.6 Array.filter() function.//// More information on the JS 1.6 API can be found here:// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:filter// example:// | dojo.filter([1, 2, 3, 4], function(item){ return item>1; });// returns [2, 3, 4]var _p = _getParts(arr, obj, callback); arr = _p[0];var outArr = [];for(var i = 0; i < arr.length; i++){if(_p[2].call(_p[1], arr[i], i, arr)){outArr.push(arr[i]);}}return outArr; // Array}});})();}