getSex(val) {
var sex = "保密";
if (val == 1) {
sex = "男";
} else if (val == 2) {
sex = "女";
}
return sex;
}
vm.$http.post(vm.apiUrl, vm.parameter).then(response => {
if (response.data.errno == 0) {
for (var item of response.data.data) {
item.sex = vm.getSex(item.sex); //将性别过滤
}
vm.listData = response.data.data;
vm.list_count = parseInt(response.data.count);
}
vm.loading = false;
});
被同事看到了,说这样写太low (╯-_-)╯╧╧
╮(╯_╰)╭
这样试试,上面那个函数都不用了,直接用过滤:
vm.$http.post(vm.apiUrl, vm.parameter).then(response => {
if (response.data.errno == 0) {
var sexStr = ["保密","男","女"];
response.data.data.filter(item => sexStr[item.sex]); //记住保证返回值的类型为数字类型,刚好对应性别数组的下标
vm.listData = response.data.data;
vm.list_count = parseInt(response.data.count);
}
vm.loading = false;
});
先说你的getSex函数,这种情况用if..else确实比较low,现在的性别多得很,facebook有56种性别选项,那你一个个if...else写着走嘛,万一要改、要加也麻烦,代码也一大坨,别人根本看不懂你的代码,这时候,可以用
表驱动法代替条件查找
const sexMap = {
0: '保密'
1: '男性',
2: '女性'
}
const getSex = val => {
let key = String(val)
return sexMap[val]
}
这样的好处有
getSex做的更完善还要包括输入验证,错误处理等,你自己去完善细节
你后面的代码要写的“高大上”一些也可以,就是写的抽象程度更高一点,大概是这样
vm.$http.post(vm.apiUrl, vm.parameter).then( response => {
验证输入// 1行
数据获取// 1行
控制视图// 1行
})