javascript实现数组的filter方法

17 阅读1分钟
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //数组的filter方法:返回回调函数函数体中要求的元素数组
    arr = [1,2,3,4]
    const arrRes = arr.filter(arr=>arr>2)
    console.log(arrRes);
    
    
    //接收一个函数,满足回调函数条件的元素作为返回数组的元素值
    //挂载在Array的原型上,数组都能用这个方法
    Array.prototype.Myfilter = function(fn){
      //判断传过来的是不是函数
      if(typeof fn !== "function"){
        return "Obejct is not a function"
      }
      //定义一个空数组
      const arrRes = []
      //遍历数组的元素,//当前元素满足回调函数的条件时就会return true,
      // 当true的时候再把这个元素添加到数组里面
      for(let i=0;i<this.length;i++){
          if(fn(this[i])){
            arrRes.push(this[i])
          }
      }
      return arrRes
    }
    const arrRes2 = arr.Myfilter(item => item>3)
    console.log(arrRes2);
    
  </script>
</body>
</html>