美文网首页
JavaScript高阶函数map和filter讲解

JavaScript高阶函数map和filter讲解

作者: lijaha | 来源:发表于2017-05-10 17:15 被阅读0次

    Array.map()

    定义: 对数组的每个元素调用定义的回调函数并返回包含结果的数组

    调用方式:
    1.Array.map(callback(element,index,array){})

    2.Array.map(callback)
    function callback(element,index,array){}

    参数:
    element:数组当前被调用的元素
    index:数组当前被调用元素的索引
    array:当前被调用元素的数组(数组本身)

    实例:

        //实例一:求圆面积
        //定义3个圆的半径
        var circle = [7,8,9];
        circle.map((element) => { return Math.PI * element * element });
        //circle = [Math.PI * 7 * 7,Math.PI * 8 * 8,Math.PI * 9 * 9]
    
        //实例二:求数组内元素%10后的结果
        var array = [11,22,33,44,55];
        array.map((element) => { return element % 10 });
        //array = [1,2,3,4,5]
    
       //实例三:求平方根
       var array = [16,25,36];
       array.map(Math.sqrt);
       //array = [4,5,6]
    

    Array.filter()

    定义:filter把传入的函数依次作用于每个元素,然后根据返回值是True or False决定保留还是舍弃该元素,并返回新的数组。

    调用方式:
    1.Array.filter(callback(element,index,array){})

    2.Array.filter(callback)
    function callback(element,index,array){}

    参数:
    element:数组当前被调用的元素
    index:数组当前被调用元素的索引
    array:当前被调用元素的数组(数组本身)

    实例:

        //实例一:获取一个数组的偶数
        var array = [2,5,6,9,4,7];
        array.filter( (element) => { return element % 2 == 0});
        //array = [2,6,4]
        //实例二:去除Array的重复元素
        var array = ["li","wang","xie","zhang","wang","li"];
        array.filter( (element,index,array) => { return array.indexOf(element) === index});
        //array = ["li","wang","xie","zhang"]
    

    indexOf()返回数组下标0开始的第一个元素的位置。

    相关文章

      网友评论

          本文标题:JavaScript高阶函数map和filter讲解

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