# jQuery.grep()

所属分类：工具类 英文文档：jQuery.grep()

## jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )返回: Array

描述: 查找满足过滤函数的数组元素。原始数组不受影响。

- #### 添加的版本: 1.0jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )

  - array
    类型: Array
    用于查询元素的数组。
  - function(elementOfArray, indexInArray)
    类型: Function()
    该函数来处理每项元素的比对。第一个参数是正在被检查的数组的元素，第二个参数是该元素的索引值。该函数应返回一个布尔值。`this`将是全局的window对象。
  - invert
    类型: Boolean
    如果“invert”为false，或没有提供，函数返回一个“callback”中返回true的所有元素组成的数组，。如果“invert”为true，函数返回一个“callback”中返回false的所有元素组成的数组。

`$.grep()`方法会删除数组必要的元素，以使所有剩余元素通过过滤函数的检查。该测试是一个函数传递一个数组元素和该数组内这个的索引值。只有当测试返回true，该数组元素将返回到结果数组中。

该过滤器的函数将被传递两个参数：当前正在被检查的数组中的元素，及该元素的索引值。该过滤器函数必须返回'true'以包含在结果数组项。

## 例子:

#### Example: F过滤出原始数组中值不为 5，并且索引值大于 4 的元素。然后再过滤掉所有值为 9 的元素。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
    <!DOCTYPE html><html><head>  <style>  div { color:blue; }  p { color:green; margin:0; }  span { color:red; }  </style>  <script src="https://code.jquery.com/jquery-latest.js"></script></head><body>  <div></div>  <p></p>  <span></span> <script>var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];$("div").text(arr.join(", ")); arr = jQuery.grep(arr, function(n, i){  return (n != 5 && i > 4);});$("p").text(arr.join(", ")); arr = jQuery.grep(arr, function (a) { return a != 9; });$("span").text(arr.join(", ")); </script> </body></html>

#### Demo:

#### Example: 过滤出数组中值大于 0 的元素。

1 2 3 |
    $.grep( [0,1,2], function(n,i){   return n > 0; });

#### Result:

1 |
    [1, 2]

#### Example: 过滤出数组中值不大于 0 的元素。

1 2 3 |
    $.grep( [0,1,2], function(n,i){    return n > 0;},true);

#### Result:

1 |
    [0]