Nodejs Array Filter filter(fun /*, thisp*/)

Here you can find the source of filter(fun /*, thisp*/)

Method Source Code

/**//w  ww .  ja  v  a 2s.c om
 * Applies `fun` to each element of the array and returns a new array of all
 * the values for which `fun` returned `true`.
 *
 * The first argument given to `fun` is a single array element and the second
 * argument is the index of that element in the array.
 *
 * This definition is compatible with the JavaScript 1.6 definition for
 * `Array#filter` in Spidermonkey and with the definition in the Prototype library.
 *
 * This implementation comes from:
 * https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/filter
 *
 * @function
 * @param   {Function}  fun     predicate function that will be applied to each
 * array element
 * @param   {Object}    [thisp] context in which `fun` will be invoked - `this`
 * in `fun` will refer to `thisp`
 * @returns {Array} a new array containing only the elements for which `fun` return true
 */
Array.prototype.filter = Array.prototype.filter || function(fun /*, thisp*/) {
    var len = this.length >>> 0;
    if (typeof fun != "function") {
        throw new TypeError();
    }

    var res = new Array();
    var thisp = arguments[1];
    for (var i = 0; i < len; i++) {
        if (i in this) {
            var val = this[i]; // in case fun mutates this
            if (fun.call(thisp, val, i)) {
                res.push(val);
            }
        }
    }

    return res;
};

Related

  1. filter(fn)
    Array.prototype.filter = function(fn){
        var self = this;
        var arr = [];
        for(var i=0; i<self.length; i++){
            if (fn(self[i])){
                arr.push(self[i]);
        return arr;
    ...
    
  2. filter(fn)
    Array.prototype.filter = function(fn)
        r = [];
        this.forEach(function (item) { if (fn(item)) r.push(item); });
        return r;
    
  3. filter(fn, context)
    Array.prototype.filter = function(fn, context) {
      if (typeof fn != "function") {
        throw new TypeError(fn + " is not a function");
      if (typeof context === 'undefined') {
        context = this;
      var res = [];
      for (var i = 0, l = this.length; i < l; ++i) {
    ...
    
  4. filter(fun /*, thisArg */)
    "use strict";
    Array.isArray = function(arg) {
        return Object.prototype.toString.call(arg) === '[object Array]';
    };
    Array.prototype.filter = function(fun ) {
        if (this === void 0 || this === null)
            throw new TypeError();
        var t = Object(this);
        var len = t.length >>> 0;
    ...
    
  5. filter(fun /*, thisp */)
    Array.prototype.filter = Array.prototype.filter || function(fun ) {
      "use strict";
      if (this === void 0 || 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++) {
    ...
    
  6. filter(fun)
    "use strict";
    Array.prototype.filter = function (fun) {
        let filtered = [];
        for (let i = 0; i < this.length; i++) {
            if (fun(this[i])) {
                filtered.push(this[i]);
        return filtered;
    ...
    
  7. filter(fun)
    "use strict";
    Array.prototype.filter = function (fun) {
        let arr = [];
        let thisArg = arguments.length >= 2 ? arguments[1] : void 0;
        for (let i = 0; i < this.length; i++) {
            if (fun.call(thisArg, this[i], i, this)) {
                arr.push(this[i]);
        return arr;
    
  8. filter(fun)
    Array.prototype.filter = function (fun) {
        var len = this.length;
        var res = [];
        var thisArg = void 0;
        for (var i = 0; i < len; i++) {
            var val = this[i];
            if (fun.call(thisArg, val)) {
                res.push(val);
        return res;
    };
    
  9. filter(fun)
    Array.prototype.filter = function(fun) {
      "use strict";
      var i, len, res, t, thisArg, val;
      if (this === void 0 || this === null) {
        throw new TypeError();
      t = Object(this);
      len = t.length >>> 0;
      if (typeof fun !== "function") {
    ...