做一个搜索,三个输入条件,求这个条件的交集。起初我的思路是按照操作的流程,一步步的来做这三个筛选。

let searchResults = [];
//step1 根据id搜索,得到一个子集。
if (searchId) {
//开始按照id查找,查找目标为allData
let eds = allData;
searchResults = this._searchWithId(searchId, eds);
searchFlag = true;
} if (searchTime) {
//开始按照searchtime查找,如果searchFlag为true则查找目标为searchResults,否则为allData
searchTime = Number(searchTime);
if (searchFlag === true) {
let srs = [];
srs= this._searchWithMilliSeconds(searchId, searchResults );
searchResults = srs;
} else {
let eds = allData;
searchResults = this._searchWithMilliSeconds(searchId, eds);
} searchFlag = true;
} if (searchWords) {
//开始按照searchwords查找,如果searchFlag为true则查找目标为searchResults,否则为allData
if (searchFlag === true) {
let srs = [];
srs = this._searchWithKeyWord(searchId, searchResults ); searchResults = srs;
} else {
let eds = allData;
searchResults = this._searchWithKeyWord(searchId, eds);
} searchFlag = true;
}
let result = searchDataStream;

经过某同事的帮助,采用做减法的思想,数据就像是流一样被filter掉。代码就被缩减了好多。主要是思路和经验,大家看看,细节请忽略

let searchDataStream = allData;
if (searchId) {
//开始按照id查找,查找目标为_editLineDatas
searchDataStream = this._searchWithId(searchId, searchDataStream);
} if (searchTime) {
//开始按照searchtime查找,如果searchFlag为true则查找目标为searchResults,否则为_editLineDatas
searchTime = Number(searchTime);
searchDataStream = this._searchWithMilliSeconds(searchTime, searchDataStream);
} if (searchWords) {
//开始按照searchwords查找,如果searchFlag为true则查找目标为searchResults,否则为_editLineDatas
searchDataStream = this._searchWithKeyWord(searchWords, searchDataStream);
}
let result = searchDataStream;

stream,做减法,优化搜索代码。的更多相关文章

  1. 从数据库、代码和服务器对PHP网站Mysql做性能优化

    数据库优化是PHP面试几乎都会被问到的事情,也是我们工作中应该注意的事情,当然,如果是小网站无所谓优化不优化,网站访问量大了自然会暴漏数据库的瓶颈,这个瓶颈是各方面问题综合导致的,下面我们来做下数据库 ...

  2. [转载]《Delphi 版 everything、光速搜索代码》 关于获取文件全路径 GetFullFileName 函数的优化

    Delphi 版 everything.光速搜索代码>,文章中关于获取文件全路径的函数:GetFullFileName,有一个地方值得优化. 就是有多个文件,它们可能属于同一个目录. 譬如 Sy ...

  3. 82.使用vue后怎么针对搜索引擎做SEO优化?

    什么是SEO 搜索引擎优化(Search engine optimization,简称SEO),指为了提升网页在搜索引擎自然搜索结果中(非商业性推广结果)的收录数量以及排序位置而做的优化行为,是为了从 ...

  4. PostgreSQL 优化器代码概览

    简介 PostgreSQL 的开发源自上世纪80年代,它最初是 Michael Stonebraker 等人在美国国防部支持下创建的POSTGRE项目.上世纪末,Andrew Yu 等人在它上面搭建了 ...

  5. 做哪些优化,才能让 UITabelView 更顺滑?(转)

    原文出处: Alexander Orlov   译文出处:南峰子(@南峰子_老驴) 转载自:ios.jobbole.com/83731/ 我已经在iOS这个最好的移动平台上有几年的开发经验了.在这期间 ...

  6. 完善dedecms站内搜索代码,为搜索结果添加第*页

    自那些平凡而伟大的程序猿开发了内容管理系统(cms),为了让看客们更快地找到自己感兴趣的内容,他们不断完善站内搜索代码,形成了一个小型的站内搜索引擎.可能有些网站模板设计师没考虑到seo的问题,很多站 ...

  7. 一分钟加入google站内搜索代码

    一分钟加入google站内搜索代码| 一分钟加入google站内搜索代码|只有7行最精简.网上有很多 google 站内搜索代码,但是出于某些目的,很多都加入了多余的代码,从seo的角度来讲,是很不优 ...

  8. 优化PHP代码的40条建议(转载)

    [size=5][color=Red](译文)优化PHP代码的40条建议[/color][/size] 40 Tips for optimizing your php Code 原文地址:http:/ ...

  9. 深信服模式(先做减法,必须拜访客户三次、研究需求方向,把产品的问题控制住,快速反应,在未来十年,绝大部分业务都会搬到Internet上来,实现All on Internet)good

    深圳市盛凯信息科技有限公司与深信服合作多年,可以说是看着深信服“飞速”长大的.盛凯的总经理邓渊在采访中笑言:“他们(深信服)发展得太快,而我们发展得太慢.” 深信服的产品线已从最初只有VPN一条,到目 ...

随机推荐

  1. 学习笔记50_mongodb

    MongoVUE,MongoDB可视化客户端: 添加一个连接: 数据库下就是集合. 实际上是json数据的集合 Mongodb->数据库->文档集合:相当于表->文档:相当于表里面的 ...

  2. PL/SQL软件执行命令出现动态执行表不可访问,本会话的自动统计被禁止

    出现这样的原因是该用户没有相关权限. 解决方法: 去除软件层面设置

  3. 8.3 NOIP CE反思

    lsc考完以后就CE了,然后滚回去吃*去了! 这次考试都比的一批,整个先是打了暴力然后对拍发现桶有可能炸内存,然后就打了一个hash-map然后......T1 T3全使用了它,结果: 没什么可说的了 ...

  4. 201871010114-李岩松《面向对象程序设计(java)》第七周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  5. 201871010114-李岩松《面向对象程序设计(java)》第六、七周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  6. 分享使用PHP开发留言板

    首先我不是一名开发人员,只是一名小小的运维工程师,PHP是我自己喜欢的一门开发语言,所以我偶尔也会敲一些代码,写一些案例.今天我给大家分享的是使用PHP开发的留言板,留言板功能不全所以请大家见谅,也不 ...

  7. 打包上传被拒 Guideline 2.5.1 - Performance - Software Requirements

    打包上传被拒 Guideline 2.5.1 - Performance - Software Requirements 在项目中全部搜索:prefs:root 找到后,把这个私有的 NSURL *u ...

  8. PHP Laravel-包含你自己的帮助函数

    你可能想创建一个在应用的任何地方都可以访问的函数,这个教程将帮你实现

  9. Python项目开发公用方法--excel生成方法

    在实际开发中,我们有时会遇到数据导出的需求.一般的,导出的文件格式为Excel形式. 那么,excel的生成就适合抽离出一个独立的公用方法来实现: def generate_excel(excel_n ...

  10. linux目录数

    FHS Filesystem Hierarchy Standard(文件系统层次化标准,[ˈhaɪərɑ:rki] 等级制度)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系 ...