Nodejs Array Filter filter(fun)

Here you can find the source of filter(fun)

Method Source Code

// Implement a Filter function
// https://www.codewars.com/kata/implement-a-filter-function

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);//ww  w  .j  a  v a 2s  .  com
        }
    }
    return res;
};

Related

  1. 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;
    ...
    
  2. 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++) {
    ...
    
  3. filter(fun /*, thisp*/)
    Array.prototype.filter = Array.prototype.filter || function(fun ) {
        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) {
    ...
    
  4. 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;
    ...
    
  5. 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;
    
  6. 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") {
    ...
    
  7. filter(fun, thisp)
    Array.prototype.filter = function(fun, thisp) {
      "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();
    ...
    
  8. filter(func)
    Array.prototype.filter = function(func) {
        var result = [];
        for(var i=0;i<this.length;i++) 
            if (func(this[i]))
                result.push(this[i]);
        return result;
    
  9. filter(grade)
    var school = [1, 2, 3, 4, 5, 6, 7, 8, 3, 35, 3, 5];
    Array.prototype.filter = function(grade) {
      var result = [];
      this.forEach(function(item) {
        if (grade(item)) {
          result.push(item);
      });
      return result;
    ...