Grep vs Filter in jQuery?

前端 未结 5 455
天命终不由人
天命终不由人 2020-12-13 11:36

I was wondering about the differences between Grep and Filter :

Filter :

Reduce the set of matched elements to those that match the selector

5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-13 12:29

    @Matas Vaitkevicius, the code snippet posted presents errors, here is a corrected one:

    function test(){
    var array = [];
    for(var i = 0; i<1000000; i++)
    {
        array.push(i);
    }
    
    var filterResult = []
    for (var i = 0; i < 1000; i++){
        var stime = new Date();
        var filter = array.filter(o => o == 99999);
        filterResult.push(new Date() - stime);
    }
    
    var grepResult = [];
    for (var i = 0; i < 1000; i++){
        var stime = new Date();
        var grep = $.grep(array,function(i,o){
            return o == 99999;
        });
        grepResult.push(new Date() - stime);
    }
    
    $('p').text('average filter - '+(filterResult.reduce((pv,cv)=>{ return pv +cv},0)/1000))
    $('div').text('average grep - '+(grepResult.reduce((pv,cv)=>{ return pv + cv},0)/1000))
    }
    test();
    
    

    TLDR : In firefox, filter is slightly faster, in chrome, that's the opposite. Regarding performances only, you can use anyone.

提交回复
热议问题