?? array.js
字號:
/* 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.lang.array");dojo.require("dojo.lang.common");// FIXME: Is this worthless since you can do: if(name in obj)// is this the right place for this?dojo.lang.has = function(obj, name){ try{ return (typeof obj[name] != "undefined"); }catch(e){ return false; }}dojo.lang.isEmpty = function(obj) { if(dojo.lang.isObject(obj)) { var tmp = {}; var count = 0; for(var x in obj){ if(obj[x] && (!tmp[x])){ count++; break; } } return (count == 0); } else if(dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)) { return obj.length == 0; }}dojo.lang.map = function(arr, obj, unary_func){ var isString = dojo.lang.isString(arr); if(isString){ arr = arr.split(""); } if(dojo.lang.isFunction(obj)&&(!unary_func)){ unary_func = obj; obj = dj_global; }else if(dojo.lang.isFunction(obj) && unary_func){ // ff 1.5 compat var tmpObj = obj; obj = unary_func; unary_func = tmpObj; } if(Array.map){ var outArr = Array.map(arr, unary_func, obj); }else{ var outArr = []; for(var i=0;i<arr.length;++i){ outArr.push(unary_func.call(obj, arr[i])); } } if(isString) { return outArr.join(""); } else { return outArr; }}// http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:forEachdojo.lang.forEach = function(anArray /* Array */, callback /* Function */, thisObject /* Object */){ if(dojo.lang.isString(anArray)){ anArray = anArray.split(""); } if(Array.forEach){ Array.forEach(anArray, callback, thisObject); }else{ // FIXME: there are several ways of handilng thisObject. Is dj_global always the default context? if(!thisObject){ thisObject=dj_global; } for(var i=0,l=anArray.length; i<l; i++){ callback.call(thisObject, anArray[i], i, anArray); } }}dojo.lang._everyOrSome = function(every, arr, callback, thisObject){ if(dojo.lang.isString(arr)){ arr = arr.split(""); } if(Array.every){ return Array[ (every) ? "every" : "some" ](arr, callback, thisObject); }else{ if(!thisObject){ thisObject = dj_global; } for(var i=0,l=arr.length; i<l; i++){ var result = callback.call(thisObject, arr[i], i, arr); if((every)&&(!result)){ return false; }else if((!every)&&(result)){ return true; } } return (every) ? true : false; }}dojo.lang.every = function(arr, callback, thisObject){ return this._everyOrSome(true, arr, callback, thisObject);}dojo.lang.some = function(arr, callback, thisObject){ return this._everyOrSome(false, arr, callback, thisObject);}dojo.lang.filter = function(arr, callback, thisObject) { var isString = dojo.lang.isString(arr); if(isString) { arr = arr.split(""); } if(Array.filter) { var outArr = Array.filter(arr, callback, thisObject); } else { if(!thisObject) { if(arguments.length >= 3) { dojo.raise("thisObject doesn't exist!"); } thisObject = dj_global; } var outArr = []; for(var i = 0; i < arr.length; i++) { if(callback.call(thisObject, arr[i], i, arr)) { outArr.push(arr[i]); } } } if(isString) { return outArr.join(""); } else { return outArr; }}/** * Creates a 1-D array out of all the arguments passed, * unravelling any array-like objects in the process * * Ex: * unnest(1, 2, 3) ==> [1, 2, 3] * unnest(1, [2, [3], [[[4]]]]) ==> [1, 2, 3, 4] */dojo.lang.unnest = function(/* ... */) { var out = []; for(var i = 0; i < arguments.length; i++) { if(dojo.lang.isArrayLike(arguments[i])) { var add = dojo.lang.unnest.apply(this, arguments[i]); out = out.concat(add); } else { out.push(arguments[i]); } } return out;}/** * Converts an array-like object (i.e. arguments, DOMCollection) * to an array**/dojo.lang.toArray = function(arrayLike, startOffset) { var array = []; for(var i = startOffset||0; i < arrayLike.length; i++) { array.push(arrayLike[i]); } return array;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -