使用 reduce 实现数组 map 方法

Posted wangxi01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 reduce 实现数组 map 方法相关的知识,希望对你有一定的参考价值。

  //使用 reduce 实现数组 map 方法
    const selfMap2 = function (fn, context)
        let arr = Array.prototype.slice.call(this)
        // 这种实现方法和循环的实现方法有异曲同工之妙,利用reduce contact起数组中每一项
        // 不过这种有个弊端,会跳过稀疏数组中为空的项
        return arr.reduce((pre, cur, index) => 
            return [...pre, fn.call(context, cur, index, this)]
        , [])
    

    Array.prototype.selfMap = selfMap2
    var arr1 = [1, 2, 3]
    arr1.length = 5

    let arrMap = arr1.selfMap(function (x) 
        return x * 2
    )
    // [2, 4, 6]

 

以上是关于使用 reduce 实现数组 map 方法的主要内容,如果未能解决你的问题,请参考以下文章

20170711_map/reduce

map/reduce函数式编程培训

JS之JQ的map/reduce/filter/sort/reverse

链接数组方法(filter、map、reduce)而不是使用双循环

map、foreach、reduce、filters的用法及区别

数组reduce和map方法