关于party_bid项目代码的重构,就我目前的了解做一基础的小结。
这里我主要讲如何缩减代码。
关于缩减代码,现在我用的主要是underscore的一些方法。
1.用find方法去除for循环嵌套if判断语句
看下面一段代码:
for (var n = 0; n < activities.length; n++) { if (activities[n].name == bidList[0].activityName) { //(中间代码省略)中间假设是对循环找到的活动的对象中的一个属性进行改动,比如status,将它的值改为0; }
我们可以这样替换:
_.find(activities,function(activity){ return activity.name == bidList[0].activityName}).status = 0; //这样我们就通过find找到对应的对象并进行改值
接下来我们了解一下find方法:
var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); //find会返回遍历数组找到符合条件的第一个对象元素,不一定会遍历完整个数组,上面的式子会返回被2整除的第一个数2
讲到find,就要讲讲与它相似的filter:
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // filter会返回一个新数组,像上面的式子会返回 [2, 4, 6],filter它与find的不同是它会遍历完整个数组,找出数据中所有符合条件的元素
filter我们也可以用来代替某些特定功能的for循环。
2.用map方法去除一些for循环
看一个for循环:
var a = [1,2,3,4] for (var i = 0;i < a.length;i++){ a[i] = a[i]+1; }
用map代替:
_.map(a,function(num){ return num = num + 1; })
3.去除一些if
比如这样的一个if:
var a; if(activities.length){ a = 1; } if(!activities.legth){ a = 0; }
可以写成这样:
var a = activities.length ? 1 : 0;
4.every()和some()
every()和some()方法是数组的逻辑判定:它们对数组元素应用指定的函数进行判定,返回true和false。
every()是当且仅当数组中的所有元素调用判定函数都返回true,它才返回true。
some()是当数组中至少有一个元素调用判定函数返回true,它就会返回true。
a = [1,2,3,4,5]; a.every(function(x) { return x < 10; }) //返回true a.every(function(x) { return x > 3; }) //返回false a.some(function(x) { return x > 10; }) //返回false a.some(function(x) { return x = 5; }) //返回ture
还有很多方法,继续学习,继续总结,重构的越来越好。
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...
标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...
"mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...
标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...
去噪代码 matlab
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
标题“backup_1000821v1001400000.zip”和描述中的信息“backup_1000821v1001400000.zip”暗示这是一个备份文件,可能包含了某个系统或应用在特定时间点的数据快照。通常,这样的文件用于防止数据丢失,便于恢复到...
【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...
标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
1.10 小结 第2章 /CP协议 2.1 概述 2.2 /CP中的新CP选项 2.3 /CP实现所需变量 2.4 状态变迁图 2.5 /CP的扩展状态 2.6 小结 第3章 /CP使用举例 3.1 概述 3.2 客户重新启动 3.3 常规的/CP事务 3.4 服务器收到过时的...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
在提供的文件中,`quadratic_bid_ninebus.m`和`case9_bid.m`可能是两个主要的MATLAB源代码文件,它们可能包含了潮流计算的实现以及特定的优化算法,如牛顿-拉弗森法或者快速分解法。 `quadratic_bid_ninebus.m`可能...
- 在 "选择对象" 对话框中,选定需要的表,例如 "cctv_bid_result_qin_99" 和 "cctv_enterprise"。 7. **导入对象** - 在 "Generate Relationships" 对话框中,点击 "Import" 按钮将所选对象导入框架。 8. **...
演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...