08 # 手写 filter 方法

简介: 08 # 手写 filter 方法

什么是 filter

filter() 方法创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。如果没有元素通过测试,则返回一个空数组。

  • ele:表示数组中的每一个元素
  • index:表示数据中元素的索引
  • array:表示数组
<script>
    var arr = [1, 3, 5, 7, 9];
    var result = arr.filter(function (ele, index, array) {
        console.log("ele----->", ele);
        console.log("index----->", index);
        console.log("array----->", array);
        return ele > 6;
    });
    console.warn("result----->", result);
</script>

手写 filter

<script>
    var arr = [1, 3, 5, 7, 9];
    var result = arr.filter(function (ele, index, array) {
        console.log("ele----->", ele);
        console.log("index----->", index);
        console.log("array----->", array);
        return ele > 6;
    });
    console.warn("result----->", result);
    Array.prototype.kaimoFilter = function (fn) {
        let arr = [];
        for (let i = 0; i < this.length; i++) {
            // fn 是 kaimoFilter 中传递的参数,是一个函数,this 是 arr
            let res = fn(this[i], i, this);
            if (res) {
                arr.push(this[i]);
            }
        }
        return arr;
    };
    var result2 = arr.kaimoFilter(function (ele, index, array) {
        console.log("ele---kaimoFilter-->", ele);
        console.log("index---kaimoFilter-->", index);
        console.log("array---kaimoFilter-->", array);
        return ele > 6;
    });
    console.warn("result2---kaimoFilter-->", result2);
</script>




目录
相关文章
|
7月前
13 # 手写 concat 方法
13 # 手写 concat 方法
59 0
|
7月前
02 # 手写 instanceof 的原理
02 # 手写 instanceof 的原理
83 0
|
7月前
|
Java 应用服务中间件 API
从零手写实现 tomcat-11-filter 过滤器
该文是关于手写实现 Apache Tomcat 的系列教程简介。作者希望通过亲自实现一个简化版来深入理解 Tomcat 的工作原理。系列教程包括了从解析 `web.xml`、基础的 Socket 实现到 Filter、Servlet 支持、线程池以及与 SpringBoot 集成等内容。文中以 Filter 为例,解释了其在网络请求中的作用,如检查和修改请求与响应,并给出了简单的 Filter 实现代码。最后提到了在 MiniCat(作者的简易 Tomcat 实现)中如何处理 Filter,并提供了项目的开源地址。
|
7月前
|
索引
07 # 手写 find 方法
07 # 手写 find 方法
60 0
|
7月前
|
索引
06 # 手写 map 方法
06 # 手写 map 方法
57 0
|
7月前
|
索引
09 # 手写 some 方法
09 # 手写 some 方法
53 0
|
7月前
|
索引
10 # 手写 every 方法
10 # 手写 every 方法
54 0
|
7月前
|
JavaScript 前端开发
filter() 方法使用
filter() 方法使用
47 0
|
存储 Java 开发者
|
SQL Java 数据库连接
Mybatis中sql拦截增强-AOP+interceptor实现分页和排序
基于interceptor可以实现sql的完整打印,除了实现打印之外。其实还可以实现分页和排序,下面的分页和排序基于aop+mybatis的interceptor实现。其本质还是对mappedStament的boundSql进行增强。 下面的项目来源于github,通过这个我们可以很好的学习mybatis中插件interceptor的使用。
879 0
Mybatis中sql拦截增强-AOP+interceptor实现分页和排序