/* * Based on: * Ext JS Library 1.1.1 * Copyright(c) 2006-2007, Ext JS, LLC. * * Originally Released Under LGPL - original licence link has changed is not relivant. * * Fork - LGPL * <script type="text/javascript"> */ /** * @class Array */ Roo.applyIf(Array.prototype, { /** * * Checks whether or not the specified object exists in the array. * @param {Object} o The object to check for * @return {Number} The index of o in the array (or -1 if it is not found) */ indexOf : function(o){ for (var i = 0, len = this.length; i < len; i++){ if(this[i] == o) { return i; } } return -1; }, /** * Removes the specified object from the array. If the object is not found nothing happens. * @param {Object} o The object to remove */ remove : function(o){ var index = this.indexOf(o); if(index != -1){ this.splice(index, 1); } }, /** * Map (JS 1.6 compatibility) * @param {Function} function to call */ map : function(fun ) { var len = this.length >>> 0; if (typeof fun != "function") { throw new TypeError(); } var res = new Array(len); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) { res[i] = fun.call(thisp, this[i], i, this); } } return res; }, /** * equals * @param {Array} o The array to compare to * @returns {Boolean} true if the same */ equals : function(b) { // https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript if (this === b) { return true; } if (b == null) { return false; } if (this.length !== b.length) { return false; } // sort?? a.sort().equals(b.sort()); for (var i = 0; i < this.length; ++i) { if (this[i] !== b[i]) { return false; } } return true; } }); Roo.applyIf(Array, { /** * from * @static * @param {Array} o Or Array like object (eg. nodelist) * @returns {Array} */ from : function(o) { var ret= []; for (var i =0; i < o.length; i++) { ret[i] = o[i]; } return ret; } });