为了使得代码能够更加的简洁,能够让重复的东西总结在同一方法中,可以使用重构来实现缩减代码,能够达到通过对方法的调用来减少代码的使用。在重构中,为了写出方法来代替繁琐的循环嵌套,我是通过Underscope中的集合,来实现对方法的编写。
其中常用的几种集合来实现方法的编写有:_.find,_.findWhere这两种集合形式。
1、_.find这种集合实现方法的目的是:从数组中逐项查找,返回一个符合条件的元素,如果没有查到,便返回Undefined,并且这种集合实现的方法只能够找到一个符合条件的元素。在我的重构中,_.find主要是为了消除多个for循环中的if的嵌套,避免代码繁琐、循环太深。下面介绍_.find的使用:
if(_.find(apply_list,function(apply){return apply.phone==bid_phone})) return true; return false;
其中大括号中return是该方法的条件语句(相当于if语句),判断后返回true或者false
2、_.findWhere该种集合编写方法的目的是:逐项查找返回第一个符合properties里键值对的元素,如果没有的话则返回undefined。它与_.find集合的区别在于_.find主要是通过设置条件,来实现返回遍历相符的第一个元素,而_.findWhere则是通过设置属性来返回第一个符合的元素,在我的重构中,则多使用_.findWhere,因为重构中大部分操作都是进入数组中,_.findWhere的使用代码如下:
var bid_list=_.findWhere(activity_list,{name:activity_name}).bidlist; var bid_messages = _.findWhere(bid_list,{bidname:bid_name}).bidapplylist解释第一行的意思如下:定义变量bid_list,其中定义activity_list属性为name,从而进入activity_list中的bidlist数组。
3、在重构中,用到了_.each这个集合来写方法,_.each这个集合是遍历数组中的每一个元素,输出符合的所有数据。在此,我的用法如下:
_.each(apply_name,function(applytip){_.each(bid_apply_name,function(bid_applylist){ if(applytip.phone == bid_applylist.phone){ }在此,我用了两个_.each的嵌套,在一个_.each中嵌套另一个_.each,这样的用法可以更加简便的遍历两个数组中的每一个元素,并从中获取套在数组中的数组,从而通过if语句来实现条件的判定。
4、重构中,我用到了_.first和_.last这个集合,来实现对一个数组中第一个元素和最后一个元素的获取,这两种对数组元素的获取形式相同,因此就_.first来说我使用的方法如下:
var app_phone = _.first(bid_app_message).phone定义变量来实现对bid_app_message中手机号的获取。
5、在重构中的需要注意的是在model文件夹中放能够存储的js,这样方便管理,存储的形式为:
function Bid(bid_name){ this.bidname=bid_name; this.bidstyle='biding'; this.bidapplylist=[]; this.bidapp=[]; }
_.findWhere(activity_list,{name:activity_name}).bidlist.push(this);通过这句话来实现存储。
6、_.sortBy的用法,代码如下:
_.sortBy([5, 4, 6, 3, 1, 2 ], function(num){ return Math.sin(num); }); => [1,2,3,4,5,6]
使用升序返回数组元素。
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
9点潮流计算PSO的优化算法 很简单,只要在MATLAB运行就可以
Repaso_Clases_Objetos_call_aplly_bid_22_02_2021
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
去噪代码 matlab
mc_bid
crc-16的编码,使用的多项式是G(x)=x^16+x^12+x^5+1
backup_1000821v1001400000.zip
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
附加服务器 欢迎使用Addons Server存储库! 请随时访问托管的当前项目的网页。 如果要安装,请遵循 指南。 我们希望您的帮助! 如果您有任何疑问,可以通过与我们联系。 请在此处报告错误: : 或您可以通过访问AMO...
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
Bid Documents - Toyota Hilux Fx
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
VHDL语言编写,实现双向移位寄存器功能,在MAX+plus软件下实现
为什么使用简单有效的二进制文件格式:密集刻度格式(DTF) 存储形状为:( (timestamp, seq, is_trade, is_bid, price, size)订单簿(timestamp, seq, is_trade, is_bid, price, size)数据元组。 按时间戳+ seq排序...
create index book_bid_idx on book(bid); create index abc on student(sid,sname); create index abc1 on student(sname,sid);他们是不同的 2、查看索引 select index_type,index_name,table_name,uniqueness from...
kp guide on how to use the kp tools