$.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;
}
});
}
随机推荐
- php json josn_decode()返回的是对像,如何把对像转成数组
php json josn_decode()返回的是对像,如何把对像转成数组 a.php传值页面,使用 json_encode($array)对数组进行加密码. b.php页面在接收a.php传过来的 ...
- 使用 Python 的 Socket 模块构建一个 UDP 扫描工具
译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来 ...
- LeetCode--110--平衡二叉树
问题描述: 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,n ...
- codeforces 576a//Vasya and Petya's Game// Codeforces Round #319 (Div. 1)
题意:猜数游戏变种.先选好猜的数,对方会告诉你他想的那个数(1-n)能不能整除你猜的数,问最少猜几个数能保证知道对方想的数是多少? 对一个质数p,如果p^x不猜,那么就无法区分p^(x-1)和p^x, ...
- python-day6---while循环
# while 条件:# 循环体的代码1# 循环体的代码2# 循环体的代码3# count=0# while count < 10:# print(count)# count+=1 # whil ...
- 处理Oracle EBS R12登录首页跳转出现unexpected error问题(转)
原文地址: 处理Oracle EBS R12登录首页跳转出现unexpected error问题 经上网搜索,造成此问题的问题有很多,如内存不足.系统参数配置不当.程序代码.系统表空间不足等原因.查询 ...
- CSRmesh Application
1.CSRmesh Control Application v2.0.1版本可以运行在支持BLE4.0的Android设备上,该版本在Android4.4.4.5.0.5.0.1.5.0.2.5.1和 ...
- struts1的parameter
1.配置文件 parameter="method" 2.请求路径 http://localhost:8081/purchaseDeclareAction.do?me ...
- L1-002 打印沙漏
所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两行符号数差2:符号数先从大到小顺序递减到1,再从小到大顺序递增:首尾符号数相等. 给定任意N个符号,不一定能正好组成一个沙漏.要求打印 ...
- Swift语法笔记
Guard guard是一种条件判断语句,可以类比if.assert.如果条件不符合,guard的else语句就运行,从而退出这个函数. 具体写法如下: func fooGuard(x: Int?) ...