美文网首页
JavaScript中filter的用法

JavaScript中filter的用法

作者: 赵一矛 | 来源:发表于2018-03-31 23:32 被阅读0次

    filter将数组中的某些元素过滤掉,返回剩下的元素。
    和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
    例子:

    (1)保留偶数
    var arr=[2,3,4,4,6];
    var result=arr.filter(function(s){
         return s%2==0;
    });
    

    输出结果为


    2018-03-31 23-15-28屏幕截图.png

    (2)把一个Array中的空字符串删掉

    var arr=["a","",null,undefined,"c"];
    var str=arr.filter(function(s){
    return s && s.trim();
    });
    

    结果为:


    2018-03-31 23-19-17屏幕截图.png

    回调函数

    filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身。

    var arr=['a','b','c'];
    var r=arr.filter(function(element,index,self){
    console.log("element="+element);
    console.log("index="+index);
    console.log("self="+self);
    });
    

    结果为


    2018-03-31 23-24-09屏幕截图.png
    利用filter,可以巧妙地去除Array的重复元素:
    var r, arr=['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
    r=arr.filter(function(element,index,self){
    return self.indexOf(element)===index;
    });
    
    结果为: 2018-03-31 23-28-56屏幕截图.png

    去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。

    相关文章

      网友评论

          本文标题:JavaScript中filter的用法

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