`
快乐蓝海
  • 浏览: 4172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

party_bid重构总结

阅读更多

为了使得代码能够更加的简洁,能够让重复的东西总结在同一方法中,可以使用重构来实现缩减代码,能够达到通过对方法的调用来减少代码的使用。在重构中,为了写出方法来代替繁琐的循环嵌套,我是通过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.dat

    数据格式 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

    标题中的"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

    标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...

    基于JavaScript的Java_Bid招标项目前端设计源码

    该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...

    EURUSD_1 Min_Bid_2003.05.04_2019.02.02.zip

    欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。

    mc_bid

    "mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...

    Repaso_Clases_Objetos_call_aplly_bid_22_02_2021

    标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...

    去噪代码matlab-PGBL_BID:PGBL_BID的Matlab代码

    去噪代码 matlab

    backup_1000821v1001400000.zip

    总结起来,这个“backup_1000821v1001400000.zip”压缩包可能包含了一个陌陌应用或系统的备份数据,其中`verify.json`和`config.json`文件提供了备份验证和应用配置信息,而`verify.sign`和`verify.signature`则保证...

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    ocds_bid_extension:允许出价统计信息和详细的出价信息被表示

    出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都

    bid_shift_reg.rar_plus

    标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...

    Bid Documents - Toyota Hilux Fx_pdf_

    【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid格式文件电子标书阅读器.zip

    bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...

    matlab 电力系统潮流计算程序 9节点改进算法算例

    在提供的文件中,`quadratic_bid_ninebus.m`和`case9_bid.m`可能是两个主要的MATLAB源代码文件,它们可能包含了潮流计算的实现以及特定的优化算法,如牛顿-拉弗森法或者快速分解法。 `quadratic_bid_ninebus.m`可能...

    Framework Manager使用手册.doc

    - 在 "选择对象" 对话框中,选定需要的表,例如 "cctv_bid_result_qin_99" 和 "cctv_enterprise"。 7. **导入对象** - 在 "Generate Relationships" 对话框中,点击 "Import" 按钮将所选对象导入框架。 8. **...

    马里奥matlab代码-Class-adapted-BID:一种基于即插即用的适应类盲图像去模糊方法

    演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...

    Bid Documents - Service Pick-up_OntheUp_tantakpins_

    标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...

Global site tag (gtag.js) - Google Analytics