以下函数有点长,请问有什么方法可以优化一下
_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函数里面