美文网首页
封装map方法

封装map方法

作者: 转移到CSDN名字丹丹的小跟班 | 来源:发表于2021-06-29 17:57 被阅读0次

    map特性:
    1.参数一为回调函数,回调函数里面有三个参数,数组元素,下标和数组,参数二为回调函数的this指向。默认this指向全局。
    2.对稀缺数组跳过空元素,不进行处理。
    3.返回新数组。

    // map拥有两个参数,第一个是回调函数,第二个是this指向
    function selfMap(fn, context) {
        // 拿到数组
        let arr = Array.prototype.slice.call(this)
        // 创建一个新的空数组进行存储
        let mapArr = []
        // 遍历数组
        for(let i = 0; i < arr.length; i ++) {
            // 排除稀疏数组,可以理解为数组也是对象,下标就是属性
            if(!arr.hasOwnProperty(i)) {
                continue
            }
            mapArr.push(fn.call(context, arr[i], i, this))
        }
        return mapArr
    }
    
    

    也可以使用reduce

    function selfMap(fn, context) {
        let arr = Array.prototype.slice.call(this)
        return arr.reduce((pre, cur, index) => {
            return [...pre, cur.call(context, cur, index, this)]
        }, [])
    }
    

    相关文章

      网友评论

          本文标题:封装map方法

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