$.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;
}
});
}
随机推荐
- bfs,dfs区别
一般来说用DFS解决的问题都可以用BFS来解决. DFS(深搜的同时考虑回溯) bfs=队列,入队列,出队列:dfs=栈,压栈,出栈 bfs是按一层一层来访问的,所以适合有目标求最短路的步数,你想想层 ...
- C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)
using System;using System.Collections.Generic;using System.Text; namespace StringEncry{ class Encode ...
- 55. 45. Jump Game II *HARD*
1. Given an array of non-negative integers, you are initially positioned at the first index of the a ...
- VGA
VGA(Video Graphics Array )视频图形阵列,是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高.显示速率快.颜色丰富等优点,在彩色显示器领域得到了广泛的应用 ...
- artDialog 弹窗提示
artDialog 弹窗提示,方便调用,不用去查文档了. /// <reference path="../../Scripts/artDialog5.0/artDialog.min.j ...
- Dash:程序员的好帮手(转载)
作为一名死coder,每天最常见的动作就是查看各种API文档,你一定也有过同时打开N个窗口(HTML.PDF.CHM),不停的在编辑器与文档之间切换的感受吧?怎么说呢,其实我很讨厌这种枯燥无味的动作, ...
- JProfiler性能分析
之前已经介绍过如何调试本地的JBoss.现在额外一篇文章关于如何远程调试Tomcat的,其实远程和本地的区别不大,主要区别只是,JProfiler的GUI运行在你本地,而JProfiler的Agent ...
- git操作远端分支(转)
http://www.cnblogs.com/Camier-myNiuer/p/5558884.html 原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a ...
- SharePoint 元数据服务-PowerShell
1. 获取元数据服务应用程序标识 Get-SPServiceApplication 2. 获取指定的元数据服务应用程序实例 $metadataApp = Get-SPMetadataServiceAp ...
- iOS开发UI之Quartz2D使用(绘制基本图形)
iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...