浅谈jQuery源码(四)——$.grep

来源:互联网 发布:哔哩哔哩录屏软件 编辑:程序博客网 时间:2024/06/03 18:10

jQuery的grep()方法是为了传入一个数组elems,通过过滤器callback后,等到过滤后的结果。其中callback就是过滤器,$.grep是根据其返回值过滤; inv为true表示是callback过滤器返回true的那些被过滤掉。

 

1、grep()的用法:

$.grep( [0,1,2], function(n,i){  return n <= 0;});

结果:[0]

$.grep( [0,1,2], function(n,i){  return n <= 0;}, true);

结果:[1, 2]

 

2、jQuery的grep()源码如下:

grep: function(elems, callback, inv) {var retVal, ret = [], i = 0, length = elems.length;inv = !!inv;//转成布尔型for (; i < length; i++) {retVal = !!callback(elems[i], i); // 注意callback的参数是先value后keyif (inv !== retVal)ret.push(elems[i]);    }return ret;},

注意:grep()设计的callback接受的参数顺序与each()的callback不一致(grep()是先value后key,each()是先key后value),这样设计的原因是往往过滤器只需使用value,这样就可以忽略第二个参数了。

1 0
原创粉丝点击