首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

处置短信时,用hash表 来替换if else

2014-01-21 
处理短信时,用hash表 来替换if else? ? 在写处理短信的时候,要根据短信的内容来判断是报名短信和竞价短信

处理短信时,用hash表 来替换if else

? ? 在写处理短信的时候,要根据短信的内容来判断是报名短信和竞价短信时候,要到一些 if else, 可以用hash表的形式来替换掉这些代码。

 if(message.content.substring(0, 2).toUpperCase() == "BM") {        process_activity_sign_up_message()    } else if (message.content.substring(0, 2).toUpperCase() == "JJ") {        process_bid_sign_up_message()    } else {        prompt_message_format()    }

? ?下面用hash的形式来替换一下:

fore_two_string = message.content.substring(0, 2).toUpperCase()  judge_message()function judge_message() {    var judge_message = {        BM: function() {            process_activity_sign_up_message()        },        JJ: function() {            process_bid_sign_up_message()        }    }    if(judge_message[fore_two_string]) {        judge_message[fore_two_string]()        return    }    prompt_message_format()}

? ? 根据活动状态来处理短信:

judge_activity_status()function judge_activity_status() {    var status = ActivityInfo.get_starting_activity()    if(status == "un_start") {        console.log("活动报名还未开始, 请稍后再试。")        return    }    if(status == "start") {        process_message_when_activity_status_start()        return    }        if(status == "end") {        console.log("抱歉,活动报名已经结束。")    }

? ? 用hash 来替换:

judge_activity_status()function judge_activity_status() {    var judge_activity_status = {        un_start: function() {            console.log("活动报名还未开始, 请稍后再试。")        },        end: function() {            console.log("抱歉,活动报名已经结束。")        },        start: function() {            process_message_when_activity_status_start()        }    }   judge_activity_status[ActivityInfo.get_starting_activity().status]()}

? ? 不知道hash表的key时,如何取value值。在统计竞价各价钱的人数时:

var group_bid_sign_up_infos_by_price = _.groupBy(bid_sign_up_infos, function(bid_sign_up_info) {        return bid_sign_up_info.price    }) var price_counts = [ ]_.map(group_bid_sign_up_infos_by_price, function(value, key) {    price_counts.push({price: key, count: value.length})})return price_counts

? ? 用Underscope的_.groupBy来对竞价进行按price分组,再_.map来遍历分组后产生的hash表,然后对它进行新的数据封装。也可以用

for(key in group_bid_sign_up_infos_by_price) {    price_counts.push({price: key, count: group_bid_sign_up_infos_by_price[key].length})}

热点排行