Cycymomo
4/22/2013 - 11:56 AM

Array filter

Array filter

if (!Array.prototype.filter) {
  Array.prototype.filter = function(fun /*, thisp */) {
    "use strict";
 
    if (this == null)
      throw new TypeError();
 
    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();
 
    var res = [];
    var thisp = arguments[1];
    for (var i = 0; i < len; i++) if (i in t) {
      var val = t[i];
      if (fun.call(thisp, val, i, t))
        res.push(val);
    }

    return res;
  }
}