javascript - 函数优化方法
巴扎黑
巴扎黑 2017-04-11 08:58:46
[JavaScript讨论组]

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

        _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);
        }
巴扎黑
巴扎黑

全部回复(3)
阿神
_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 函数,如果参数为 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);
}
天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号