$.grep()的用法
grep()方法用于数组元素过滤筛选
var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
arr = jQuery.grep(arr, function( n, i ) {
if( n !== 5 && i > 4){
return true;
}
});
等价于:
arr = jQuery.grep(arr, function( n, i ) {
return ( n !== 5 && i > 4 );
});
OA差旅用到该函数来筛选起飞时间:
define(function (require, exports, module) {
var init = function() {
//outsideArr是要去进行筛选的原始数组
var outsideArr=[
{
'depTime':0020,
'name':'xiaohua'
},{
'depTime':0050,
'name':'dahua'
},{
'depTime':0025,
'name':'laohua'
}
]
//innerArr为筛选条件数组
var innerArr=[
{
'start':0010,
'end':0030
}
];
var innerArrNew={
'start':0010,
'end':0030
};
//$.grep()函数中,第一个参数为数组,第二个参数为true时,返回数组,
//每次取出数组outsideArr的一个对象和筛选数组innerArr循环进行判断
//一旦该数组outsideArr的该对象满足筛选数组innerArr的任何一个条件,则flag=true
//所以当flag=true时,返回outsideArr的数组该元素
var ephemeralsec = $.grep(outsideArr, function (item, index) {
var flag = false;
$.each(innerArr, function(i, subItem) {
if (item.depTime > subItem.start && item.depTime <= subItem.end) {
flag = true;
}
});
if (flag) {
return true;//返回值为true时,相当于返回的是outsideArr数组中的item
}
});
//如果筛选条件不是数组,则变成我们常见的形式,没有对里面筛选条件的循环
var ephemeralthree = $.grep(outsideArr, function (item, index) {
if (item.depTime > innerArrNew.start && item.depTime <= innerArrNew.end) {
return true;
}
});
console.log(ephemeralthree);
};
module.exports = init;
});
用图片显示:

// 选择航空公司筛选(和上面时间筛选不一样,是因为时间要筛选一个范围的值,而下面的筛选选择包含的值)
// 选择出发机场筛选
if (filterselected.depAirdrome.length > 0){
ephemeral = $.grep(ephemeral, function (item, index) {
if($.inArray(item.depAirdrome, filterselected.depAirdrome) != -1) {
return true;
}
});
}
随机推荐
- 第7章使用请求测试-测试API . Rspec: everyday-rspec实操。
测试应用与非人类用户的交互,涵盖外部 API 7.1request test vs feature test 对 RSpec 来说,这种专门针 对 API 的测试最好放在 spec/requests ...
- java向文件中添加数据---手动版日志添加
核心代码为创建多级文件夹创建 //目标文件 File file=new File(filePath); //若不存在即创建文件 if(!file.exists()) { if (!file.getPa ...
- Cloud Commander
一.Cloud Commander简介: Cloud Commander 是一个基于 web 的文件管理程序,它允许你通过任何计算机.移动端或平板电脑的浏览器查看.访问或管理系统文件或文件夹.它有两个 ...
- Non-parseable POM 解决方法
两个build放在一起当然不行,把它们类似这样的合并起来.
- Java使用POI读取和写入Excel指南
Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...
- Java网络编程和NIO详解8:浅析mmap和Direct Buffer
Java网络编程与NIO详解8:浅析mmap和Direct Buffer 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NI ...
- python-day46--前端基础之html
一.html是什么? 超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分.一套规则,浏览器认识的规则 浏览器按顺序渲染网页文件,然 ...
- Oracle数据库的“健康指示器”——事件(events)
Oracle数据库“赢在”在架构,这话还是有道理的,除了锁(lock)这个最大的架构上的“赢点”之外,Oracle事件(event)也是另外一个很重要的架构上的“赢点”,因为当今的Oracle数据库, ...
- bzoj1086
题解: 树分块 每一次当个数大于B的时候分成一块 省会城市为当前子树根 然后最后剩下的节点和前一个分为一块 代码: #include<bits/stdc++.h> using namesp ...
- ShellExecute函数的问题
情境:自己写了一个loading画面,定时器到时间后调用shellexecute函数调用真正的程序. 问题:调用时出错,说找不到dll资源,但是用鼠标双击确可以打开. 经过分析之后,应该是路径的问题, ...