前端手动封装数组的foreach,map,filter,every,some,Reduce,reduceRight方法

我是歌谣 放弃很容易 但坚持一定很酷
公众号小歌谣 谢谢关注

前言

Foreach

Array.prototype.myForEach = function (cb) {
  var _arr = this;
  var _len = _arr.length;
  var _arg2 = arguments[1] || window;

  for (var i = 0; i < _len; i ++) {
    cb.apply(_arg2, [_arr[i], i, _arr]);
  }
}

Map

Array.prototype.myMap  = function (cb) {
  var _arr = this;
  var _len = _arr.length;
  var _arg2 = arguments[1] || window;
  var _newArr = [];
  var _item;
  var _res;

  for (var i = 0; i < _len; i ++) {
    _item = deepClone(_arr[i]);
    _res = cb.apply(_arg2, [_item, i, _arr]);
    _res && _newArr.push(_res);
  }

  return _newArr;
}

Filter

Array.prototype.myFilter = function (cb) {
  var _arr = this;
  var _len = _

猜你喜欢

转载自blog.csdn.net/weixin_43392489/article/details/115029169