过滤原始数组grep()方法
语法:
$.grep(array,function[,invert])
参数 | 描述 |
---|---|
array | 将被过滤的数组 |
function | 指定的过滤函数。该函数中有两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值。此函数返回一个布尔值 |
invert | 布尔类型可选,默认false。指定是否反转过滤结果。如果为true 则结果数组将包含function返回false的所有元素。 |
例子:
var array = [0,1,2,3,4,5,6]
var arr = $.grep(array,function(item,index){
return item>2
})
console.log(arr) //结果为[3,4,5,6]
invert为true时:
var array = [0,1,2,3,4,5,6]
var arr = $.grep(array,function(item,index){
return item>2
},true)
console.log(arr) //结果为[0,1,2]就是被function过滤掉的元素,即function中返回false的元素。
JQuery中的源码:
grep: function( elems, callback, inv ) {
var retVal,
ret = [],
i = 0,
length = elems.length;
inv = !!inv;
// Go through the array, only saving the items
// that pass the validator function
for ( ; i < length; i++ ) {
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}
}
return ret;
}