$.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;
}
});
}
随机推荐
- 用Javascript 实现倒计时
用Javascript 实现倒计时<!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- 使用与不使用@RequestBody注解的区别
1. 如果使用@RequestBody接受页面参数: public Map<String,Object> insertBudget(@ApiParam(required = true,na ...
- hdu5253 MST
连接的管道 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- BUCTOJ_ACM2017C 回文串的热爱
#include "iostream" #include "algorithm" #include "cstdio" #include &q ...
- create view
create view View_count as SELECT spkfk.spid, pf_ckmx.rq, pf_ckmx.spid AS Expr1, pf_ckmx.shl, spk ...
- JavaScript学习总结(五)——Javascript中==和===的区别
一.JavaScript"=="的作用 当==两边的内容是字符串时,则比较字符串的内容是否相等. 当==两边的内容是数字时,则比较数字的大小是否相等. 当==两边的内容是对象或者是 ...
- SQL基础日期函数
--dateadd 将制定的数值添加到指定的日期部分后的日期 select dateadd(mm,4,'01/01/99') -- 返回:以当前的日期格式返回05/01/99 --datediff 二 ...
- bzoj1626
题解: 简单最小生成树 x,y都要double 我也不知道为什么 代码: #include<bits/stdc++.h> using namespace std; ; int n,m,f[ ...
- 如何在ubuntu16上安装docker
自从用了docker,就一直无法忘怀,省去了很多部署成本.特别是可以统一开发环境和部署环境,在实际开发中有很大的实用价值. 作为一个伪全栈,我是力推大家学习docker技术的.这种共享linux内核的 ...
- 深入理解uwsgi和gunicorn网络模型
前言: 去年10月份建了一个python技术群,到现在为止人数已经涨到700人了.最一开始我经常在群里回应大家的问题,不管是简单还是困难的,我都会根据自己的经验来交流. 让人新奇的是一些初学者关注最多 ...