// 自定义 filter 方法
    Array.prototype.myfilter = function (cb) {
      const context = this;
      const len = context.length;
      const res = [];
      for (let i = 0; i < len; i++) {
        if (cb.call(context, context[i], i, context)) {
          res.push(context[i]);
        }
      }
      return res;
    }
    console.log('自定义filter:', [1,4,67,49,2,5,3,74].myfilter(item => item > 10));

    // 自定义 map 方法
    Array.prototype.mymap = function (cb) {
      const context = this;
      const len = context.length;
      const res = [];
      for (let i = 0; i < len; i++) {
        res.push(cb.call(context, context[i], i, context))
      }
      return res;
    }
    console.log('自定义map: ', [1, 2, 3, 4, 5].mymap(item => item * 2));

    // 自定义 every 方法
    Array.prototype.myevery = function (cb) {
      const context = this;
      const len = context.length;
      const flag = true;
      for (let i = 0; i < len; i++) {
        if (!cb.call(context, context[i], i, context)) {
          return false;
        }
      }
      return flag;
    }
    console.log('自定义every:', [1, 2, 3, 4, 5].myevery(item => item > 1));

    // 自定义 some 方法
    Array.prototype.mysome = function (cb) {
      const context = this;
      const len = context.length;
      const flag = false;
      for (let i = 0; i < len; i++) {
        if (cb.call(context, context[i], i, context)) {
          return true;
        }
      }
      return flag;
    }
    console.log('自定义some:', [1, 2, 3, 4, 5].mysome(item => item > 5));

 

posted on 2021-03-05 17:50  取名向来是件难事  阅读(162)  评论(0编辑  收藏  举报