[Функция] jQuery.grep(array, callback, invert)
Раздел "Utilities"
Функция производит фильтрацию элементов массива с использованием функции - фильтра.
Параметры
jQuery.grep(array, callback, invert)
1.0
array:массив выбранных элементов.
callback:функция, обрабатывающая каждый элемент. Первый аргумент функции это список элементов, второй аргумент – список индексов. Функция должна вернуть логическую переменную. Функция "lambda-form" была удалена в jQuery 1.2.3 для обеспечения совместимости с другими фреймовиками.
function callback(elementOfArray, indexInArray) { var shouldKeepIt; this; // текущий элемент }
invert: если параметр "invert" указан как false, либо вообще не указан, функция вернет массив состоящий из всех элементов для которых функция "callback" вернула true. Если "invert" указана как true, функция вернёт массив состоящий из всех элементов для которых функция "callback" вернула false.
Описание
Фильтрующей функции будут переданы два аргумента: текущий массив элементов и их индекс. Функция фильтрации должна вернуть 'true' при сохранении элементов в массив.
Примеры
Пример:
Фильтрация исходного массива чисел, оставляющая числа не равные 5 и индекс которых больше чем 3. Затем все числа равные 9 удаляются.
"jQuery"
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(", "));
"HTML"
<div></div> <p></p> <span></span>
"CSS"
div { color:blue; } p { color:green; margin:0; } span { color:red; }
"Живой пример jQuery"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <link href="http://test-drupal.ru/themes/slyweb/css/jqueryiframe.css" rel="stylesheet" type="text/css"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.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> </head> <body class="iframe"> <div></div> <p></p> <span></span> </body> </html> <style> div { color:blue; } p { color:green; margin:0; } span { color:red; } </style>
Пример:
Функция фильтрует массив чисел, и возвращает числа, которые больше чем 0.
Версия jQuery 1.4.2
Документ создан 2010-08-21