jQuery.grep

« Обратно к странице инструментов

jQuery.grep( массив, вызов, [invert] )

Отыскивает элементы удовлетворяющие заданному фильтру. Исходный массив не изменяется.
Фильтру передаются два аргумента: текущий элемент массива и его индекс. Фильтрующая функция должна возвращать true для включения элемента в результирующий массив.
Аргументы:

массив Массив
Исходный массив, в котором необходимо искать элементы.
callback Функция
Фильтрующая функция для обработки элементов массива. Фильтру передаются два аргумента: текущий элемент массива и его индекс. Функция должна возвращать логическое значение. Функция «lambda-form» была удалена из jQuery 1.2.3 для повышения совместимости с другими фреймворками.

function callback(indexInArray, elementOfArray) {
  var shouldKeepIt;

  this; // == window

  return shouldKeepIt;
}
invert (необязательно) Логическое значение
Если «invert» установлено в false или не указано совсем, тогда функция возвращает массив, состоящий из элементов для который функция в аргументе «вызов» возвратила true. Если «invert» установлено в true, тогда функция возвращает массив, состоящий из элементов для который функция в аргументе «вызов» возвратила false.
Примеры:

Отфильтровывает массив чисел оставляя убирая пятерки и оставляя элементы с индексом выше 4. Затем удаляет все девятки.
    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(", "));
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

    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>

  <style>
  div { color:blue; }
  p { color:green; margin:0; }
  span { color:red; }
  </style>
</head>
<body>
  <div></div>
  <p></p>

  <span></span>

</body>
</html>

Отфильтровывает массив чисел оставляя лишь те, которые больше нуля.

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