zoukankan      html  css  js  c++  java
  • es5实现map/filter

    // ES5循环循环实现filter

    const selfFilter = function (fn, context) {
    
        let arr = Array.prototype.slice.call(this)
    
        let filteredArr = []
    
        for (let i = 0; i < arr.length; i++) {
    
            if(!arr.hasOwnProperty(i)) continue;
    
             fn.call(context, arr[i], i, this) && filteredArr.push(arr[i])
    
        }
    
        return filteredArr
    
    }

     

     

    // ES5循环实现map

    const selfMap = function (fn, context) {
    
        let arr = Array.prototype.slice.call(this)
    
        let mappedArr = []
    
        for (let i = 0; i < arr.length; i++) {
    
            // 判断稀疏数组的情况
    
            if (!arr.hasOwnProperty(i)) continue;
    
            mappedArr.push(fn.call(context, arr[i], i, this))
    
        }
    
        return mappedArr
    
    }

     

    // reduce实现map

    const selfMap2 = function (fn, context) {
    
        let arr = Array.prototype.slice.call(this)
    
        return arr.reduce((pre, cur, index) => {
    
            return [...pre, fn.call(context, cur, index, this)]
    
        }, [])
    
    }
  • 相关阅读:
    EOJ二月月赛补题
    cf401d
    cf628d
    cf55d
    HDU 6148 Valley Number
    洛谷 P3413 SAC#1
    洛谷 P4127[AHOI2009]同类分布
    洛谷 P2602 [ZJOI2010]数字计数
    bzoj 3679
    函数和循环闭包的理解
  • 原文地址:https://www.cnblogs.com/qdcnbj/p/11186832.html
Copyright © 2011-2022 走看看