美文网首页
手动封装数组方法filter()

手动封装数组方法filter()

作者: 楠楠_c811 | 来源:发表于2019-01-01 17:52 被阅读8次
filter()方法

创建一个新数组,包含通过测试的所有元素。

 // 封装一个filter函数
        function myFilter(fn){
            // 设置一个空数组
            let arr = [];
            // 循环传进来的数组
            for (let i = 0 ; i < this.length; i++){
                // 判断符合条件的值
                if(fn(this[i],i,this)){
                    console.log(this[i])
                    // 将符合条件的值push进空数组中
                    arr.push(this[i])
                }
            }
            // 循环结束时,返回arr。
            // 此时如果数组中有值,就返回新数组,如果没有值,就会返回空数组
            return arr;
        }
        // 定义数组
        let arr2 = [1,3,4]
        // 将myFilter挂到数组的原型下
        Array.prototype.myFilter = myFilter; 
        // 调用方法,传入参数
        arr2.myFilter(function(item,index,arr2){
            // 将符合条件的值return出去
            return item < 2 ;
        })

相关文章

网友评论

      本文标题:手动封装数组方法filter()

      本文链接:https://www.haomeiwen.com/subject/axcwlqtx.html