jQuery中的$.grep()方法的使用

grep()方法用于数组元素过滤筛选

grep(array,callback,invert)
array:待过滤数组;
callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值。此函数应返回一个布尔值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }”
invert:布尔型可选项,默认值false,值为true或false, 如果 “invert” 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当”invert” 为 true,则返回过滤函数中返回 false 的元素集。
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
});
上面的例子返回[3,4,5,6],但是我们给invert的值为true,例如
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
},ture);
所以现在返回的是[0,1,2],也就是被callback函数过滤掉的元素。
 
//测平项目例子
data.files = $.grep(data.files, function (file, index) {
                        //检查扩展名
                        var regex = /.xls$|.xlsx$/;
                        var result1 = regex.test(file.name.toLowerCase());
                        if (!result1) {
                            alert('请选择*.xls或*.xlsx文件!')
                            return true;
                        }
                        //检查文件大小
                        var result2 = file.size < 4194304;
                        if (!result2) {
                            alert('请选择小于4MB的文件!')
                            return false;
                        }
                        return result1 && result2;
原文地址:https://www.cnblogs.com/zhhq/p/3469623.html