X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=Array.js;h=4ede9280a296c2a15fd4edad26ec6f7770ff9ece;hp=1d8a2855c14d0badad37da5a38992e728a9e2cf4;hb=refs%2Fheads%2Fwip_alan_T7160_sort_out_comment_removal_and;hpb=676422aa798730e17afbcb2a2a51c30251ddd17d diff --git a/Array.js b/Array.js index 1d8a2855c1..4ede9280a2 100644 --- a/Array.js +++ b/Array.js @@ -42,21 +42,68 @@ Roo.applyIf(Array.prototype, { map : function(fun ) { var len = this.length >>> 0; - if (typeof fun != "function") + 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) + 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; + + } +});