今天学到了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 });