首页 > 函数优化方法

函数优化方法

以下函数有点长,请问有什么方法可以优化一下

        _loadSumListData : function(data){
            var total_revenue ;
            var free_revenue;
            var billing_revenue;
            var channel_total_revenue;
            var channel_revenue;
            if ( data.total_revenue == null ) {
                total_revenue = "-";
            } else {
                total_revenue = moneyFormat._formatMoney(data.total_revenue);
            };
            if ( data.free_revenue == null ) {
                free_revenue = "-";
            } else {
                free_revenue = moneyFormat._formatMoney(data.free_revenue);
            };
            if ( data.billing_revenue == null ) {
                billing_revenue = "-";
            } else {
                billing_revenue = moneyFormat._formatMoney(data.billing_revenue);
            };
            if (data.channel_total_revenue == null ) {
                channel_total_revenue =  "-";
            } else {
                channel_total_revenue = moneyFormat._formatMoney(data.channel_total_revenue);
            };
            if (data.channel_revenue == null ) {
                channel_revenue =  "-";
            } else {
                channel_revenue = moneyFormat._formatMoney(data.channel_revenue);
            };
            var sumList = "<td align='center'>"+total_revenue+"</td><td align='center'>"+free_revenue+"</td><td align='center'>"+billing_revenue+"</td><td align='center'>"
            +channel_total_revenue+"</td><td align='center'>"+channel_revenue+"</td>";
           $(".sum-list-table tbody").append(sumList);
        }

修改 _formatMoney 函数,如果参数为 null 直接返回 - 而不是在外面判断。这样中间所有的 if 语句就不存在了。最后用 map 去遍历生成字符串而不是自己去拼接。

 _loadSumListData : function(data){
    var html = ['total_revenue', 'free_revenue', 'billing_revenue', 'channel_total_revenue', 'channel_revenue'].map(function(key) {
        return '<td align="center">'+ moneyFormat._formatMoney(data[key]) + '</td>';
    }).join('');
    $('.sum-list-table tbody').append(html);
}

_loadSumListData : function (data) {
    var sumList = '';
    $.each(['total_revenue', 'free_revenue', 'billing_revenue', 'channel_total_revenue'], function (index, item) {
        sumList += "<td align='center'>" + (item ? moneyFormat._formatMoney(item) : '-') + "</td>";
    })
    $(".sum-list-table tbody").append(sumList);
}

把为空则返回'-'的逻辑也写进_formatMoney函数里面

【热门文章】
【热门文章】