jQuery.grep()
函数用于使用指定的函数过滤数组中的元素,并返回过滤后的数组。
源数组不会受到影响,过滤结果只反映在返回的结果数组中。
该函数属于全局jQuery
对象。
语法
JavaScript:
jQuery.grep( array, function [, invert ] )
参数
参数 | 描述 |
---|---|
array | Array类型将被过滤的数组。 |
function | Function类型指定的过滤函数。 |
invert | 可选/Boolean类型默认值为false。指定是否反转过滤结果。 |
注意事项:
- 该函数将遍历数组元素,并执行过滤函数
function
。它会为function
提供两个参数:其一为当前迭代的数组元素,其二是当前迭代元素在数组中的索引。 - 如果未指定
invert
参数,或该参数为false,则结果数组将包含function
返回true的所有元素。如果参数invert
为true,则结果数组将包含function
返回false的所有元素。
返回值
jQuery.grep()
函数的返回值为Array类型,返回通过指定函数过滤后的结果数组。
示例&说明
jQuery.grep()
函数的jQuery示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jq源码分析</title>
<script src="jquery-2.0.3.js"></script>
</head>
<body>
<script>
//在当前页面内追加换行标签和指定的HTML内容
function w(html) {
document.body.innerHTML += "<br/>" + html;
}
var arr = [10, 25, 3, 0, -3, 20, 6, 8, 11];
function filter(value, index) {
return value > 10;
}
var result = $.grep(arr, filter);
// 保留了所有大于10的元素
w(result); // 25,20,11
var result2 = $.grep(arr, filter, true);
// 保留了所有不大于10的元素
w(result2); // 10,3,0,-3,6,8
</script>
</body>
</html>
结果: