在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 下面的代碼怎么寫才會顯得高端大氣上檔次?

下面的代碼怎么寫才會顯得高端大氣上檔次?

接口中性別字段為int型, 范圍為0-2, 順手寫了這樣的函數(shù):
    getSex(val) {
      var sex = "保密";
      if (val == 1) {
        sex = "男";
      } else if (val == 2) {
        sex = "女";
      }
      return sex;
    }
用在獲取數(shù)據(jù)后處理性別:
      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 (╯-_-)╯╧╧

所以,該怎樣改寫才能顯得高端大氣上檔次?

    ╮(╯_╰)╭  
回答
編輯回答
舊時光

先說你的getSex函數(shù),這種情況用if..else確實比較low,現(xiàn)在的性別多得很,facebook有56種性別選項,那你一個個if...else寫著走嘛,萬一要改、要加也麻煩,代碼也一大坨,別人根本看不懂你的代碼,這時候,可以用

表驅(qū)動法代替條件查找

const sexMap = {
    0: '保密'
    1: '男性',
    2: '女性'
}

const getSex = val => {
    let key = String(val)
    return sexMap[val]
}

這樣的好處有

  1. 你修改、添加性別時不用改動代碼,直接改動sexMap就行了
  2. sexMap可以單獨寫在一個配置文件中,使用的時候引入,工程結(jié)構(gòu)清晰,便于管理
  3. 用配置取代了細節(jié)

getSex做的更完善還要包括輸入驗證,錯誤處理等,你自己去完善細節(jié)

你后面的代碼要寫的“高大上”一些也可以,就是寫的抽象程度更高一點,大概是這樣

vm.$http.post(vm.apiUrl, vm.parameter).then( response => {
    驗證輸入// 1行
    數(shù)據(jù)獲取// 1行
    控制視圖// 1行
})
2017年7月12日 02:32
編輯回答
她愚我

用的vue嗎,那為什么不在綁定數(shù)據(jù)的時候做處理

<div v-for="item in listData">
    {{item.sex === 0 ? '保密' : item.sex === 1 ? '男' : '女'}}
</div>

或者自己寫個過濾器

2018年8月19日 20:11
編輯回答
萌二代

這樣試試,上面那個函數(shù)都不用了,直接用過濾:

 vm.$http.post(vm.apiUrl, vm.parameter).then(response => {
    if (response.data.errno == 0) {
        var sexStr = ["保密","男","女"];
        response.data.data.filter(item => sexStr[item.sex]); //記住保證返回值的類型為數(shù)字類型,剛好對應(yīng)性別數(shù)組的下標
        vm.listData = response.data.data;
        vm.list_count = parseInt(response.data.count);
    }
    vm.loading = false;
  });
2018年8月1日 01:24
編輯回答
莓森
getSex(val) {return ["保密","男","女"][val%3];}
response.data.data = response.data.data.map(item=>{...item, ...{sex: vm.getSex(item.sex)}}
2017年9月20日 00:43
編輯回答
淺淺
    getSex(val) {
        return ["保密", "男", "女"][val];
    }
2017年10月28日 12:17
編輯回答
鐧簞噯
return val === 0 ? '基佬受' : (val === 1 ? '男' : '女');

非歧視,玩笑而已,敏感隨意。

2017年6月1日 07:20