Spec-Zone.ru › jQuery

jQuery.grep()

jQuery.grep( массив, функция [, инвертировать ] )Возвращает: Массив

Описание: Находит элементы массива, удовлетворяющие фильтрующей функции. Исходный массив не изменяется.

  • версия добавлена: 1.0jQuery.grep( массив, функция [, инвертировать ] )

    • массив
      Тип: МассивПодобныйОбъект
      Объект, подобный массиву, в котором следует выполнить поиск.
    • функция
      Тип: Функция( Объект элементМассива, ЦелоеЧисло индексВМассиве ) => Булево
      Функция, обрабатывающая каждый элемент. Первый аргумент функции — это элемент, второй — его индекс. Функция должна возвращать значение типа «Булево». this будет глобальным объектом window.
    • инвертировать
      Тип: Булево
      Если «инвертировать» равно false или не указано, то функция возвращает массив, состоящий из всех элементов, для которых «callback» возвращает true. Если «инвертировать» равно true, то функция возвращает массив, состоящий из всех элементов, для которых «callback» возвращает false.

Метод $.grep() удаляет элементы из массива по мере необходимости, чтобы все оставшиеся элементы удовлетворяли заданному тесту. Тест — это функция, которая принимает элемент массива и его индекс. Только если тест возвращает true, элемент будет включён в результирующий массив.

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

Примеры:

Фильтрует исходный массив чисел, оставляя только те, которые не равны 5 и имеют индекс больше 4. Затем удаляются все 9.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.grep demo</title>
  <style>
  div {
    color: blue;
  }
  p {
    color: green;
    margin: 0;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.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>

Демо:

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

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

Результат:

[ 1, 2 ]

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

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

Результат:

[ 0 ]

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/jQuery.grep

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API