JQuery之杂项方法$.grep()

今天学到了jQuery非常好用的函数,之前没有注意具体用法,研究一下记录下来

1、$.grep()

定义:使用指定的函数过滤数组中的元素,并返回过滤后的数组。(源数组不会受到影响,过滤结果只反映在返回的结果数组中。)

$.grep( array, function (n, index ){ ----函数体----},boolean)

array:将被过滤数组,

n:当前数组值,

index:当前值下标,

boolean:可选。 Boolean类型 默认值为false,指定是否反转过滤结果。如果参数boolean为true,则结果数组将包含function返回false的所有元素。

(注意这参数一定要记清楚所对应的结果集。)

 1 <div></div>
 2 <p></p>
 3 <span></span>
 4 <script>
 5 $(function () { 
 6     var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
 7     $( "div" ).text( arr.join( ", " ) );
 8     arr = jQuery.grep(arr, function( n, i ) {
 9         return ( n !== 5 && i > 4 );
10     },true); //也就是n==5||i<=4 ,结果也就是(1,9,3,8,6,5)
11     $( "p" ).text( arr.join( ", " ) ); 
12     arr = jQuery.grep(arr, function( a ) {
13         return a !== 9;
14     });
15     $( "span" ).text( arr.join( ", " ) );
16 })
17 </script>

 实战代码:

下面代码是筛选某个数组对象SelectedRows中,是否不存在InsertRows对象,不存在则返回当前InsertRows对象。

1 $.each(SelectedRows, function (index, row) {
2        InsertRows = $.grep(InsertRows, function (n, i) {
3             return n.ID == row.ID;
4        }, true);
5   });
 
原文地址:https://www.cnblogs.com/MirZhai/p/12910628.html