精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我們一起聊聊如何簡(jiǎn)化多個(gè) if 的判斷結(jié)構(gòu)

開發(fā) 前端
當(dāng)你需要比較或“檢查”數(shù)值時(shí),很自然地會(huì)想到 if/else,這樣你就可以用語(yǔ)言逐步解決問題。但下一次,請(qǐng)?jiān)囍伎既绾螌⒛闹当硎緸閿?shù)據(jù),并通過簡(jiǎn)化邏輯來解釋這些數(shù)據(jù)。

多少算太多?

有些人認(rèn)為數(shù)字就是一,你應(yīng)該總是用至少一個(gè)三元運(yùn)算符來代替任何單個(gè) if 語(yǔ)句。我并不這樣認(rèn)為,但我想強(qiáng)調(diào)一些擺脫常見的 if/else 意大利面條代碼的方法。

我相信很多開發(fā)人員很容易陷入 if/else 陷阱,不是因?yàn)槠渌鉀Q方案的復(fù)雜性,而是因?yàn)樗裱@樣的自然語(yǔ)言模式:if 執(zhí)行此操作, else 執(zhí)行此操作。

等等,什么是三元運(yùn)算符?

三元運(yùn)算符與 if/else 并沒有革命性的區(qū)別,因?yàn)樗鼈兌际菞l件操作,但三元運(yùn)算符會(huì)返回一個(gè)值,因此可以直接用于賦值。

const greaterThanFive = (8 > 5) ? 'yep' : 'nope';

console.log(greaterThanFive); // 'yep'

基本模式只是一個(gè)條件,如果為真則返回一個(gè)值,如果為假則返回另一個(gè)值。

(condition) ? isTruthy : isFalsy

IF/ELSE 的替代方案

讓我們從一個(gè)場(chǎng)景開始,逐步了解不同解決方案的示例。

我們將從用戶輸入中獲取顏色,并需要將它們轉(zhuǎn)換為一些預(yù)設(shè)的顏色代碼來匹配,以便我們可以更改背景顏色。因此,我們將檢查顏色名稱字符串,并在匹配時(shí)設(shè)置顏色代碼。

const setBackgroundColor = (colorName) => {
 let colorCode = '';
 if(colorName === 'blue') {
  colorCode = '#2196F3';
 } else if(colorName === 'green') {
  colorCode = '#4CAF50';
 } else if(colorName === 'orange') {
  colorCode = '#FF9800';
 } else if(colorName === 'pink') {
  colorCode = '#E91E63';
 } else {
  colorCode = '#F44336';
 };
 document.body.style.backgroundColor = colorCode;
};

這個(gè) if/else 就完成了工作。但是我們背負(fù)著大量重復(fù)邏輯比較 colorName 和重復(fù)賦值 colorCode。

Switch  ?

現(xiàn)在我們可以更恰當(dāng)?shù)貙⑵涓臑?nbsp;switch 語(yǔ)句。它更符合我們正在嘗試做的事情的概念;我們有幾種想要匹配的字符串情況,如果沒有一種情況匹配,則有一個(gè)默認(rèn)值。

const setBackgroundColor = (colorName) => {
 let colorCode = '';
 switch(colorName) {
  case 'blue':
   colorCode = '#2196F3';
   break;
  case 'green':
   colorCode = '#4CAF50';
   break;
  case 'orange':
   colorCode = '#FF9800';
   break;
  case 'pink':
   colorCode = '#E91E63';
   break;
  default:
   colorCode = '#f44336';
 };
 document.body.style.backgroundColor = colorCode;
};

但是 switch 仍然帶有大量我們可以不需要的樣板文件和重復(fù)代碼。

Lookup Table  查找表

那么我們真正想要實(shí)現(xiàn)什么目標(biāo)呢?我們需要將十六進(jìn)制顏色代碼分配給顏色名稱,因此讓我們創(chuàng)建一個(gè)將顏色名稱作為鍵、將顏色代碼作為值的對(duì)象。然后我們可以使用 object[key] 通過顏色名稱查找顏色代碼。我們需要一個(gè)默認(rèn)值,因此如果沒有找到鍵,則返回默認(rèn)值的短三元運(yùn)算符將在創(chuàng)建對(duì)象的默認(rèn)部分時(shí)執(zhí)行此操作。

const colorCodes = {
 'blue'   : '#2196F3',
 'green'  : '#4CAF50',
 'orange' : '#FF9800',
 'pink'   : '#E91E63',
 'default': '#F44336'
};

const setBackgroundColor = (colorName) => {
 document.body.style.backgroundColor = colorCodes[colorName]
  ? colorCodes[colorName]
  : colorCodes['default'];
};

現(xiàn)在我們有了一個(gè)查找表,可以整齊地列出我們的輸入和可能的輸出。

這并不是奇跡般地減少了“代碼行數(shù)”(LOC)(我們從 15 行減少到 20 行,再減少到 12 行)。事實(shí)上,其中一些解決方案可能會(huì)增加您的 LOC,但我們提高了可維護(hù)性、易讀性,并且實(shí)際上通過僅對(duì)默認(rèn)回退進(jìn)行一次邏輯檢查來降低復(fù)雜性。

數(shù)據(jù)的交易邏輯

在 if/else 或 switch 上使用查找表的最重要成就是我們將比較邏輯的多個(gè)實(shí)例轉(zhuǎn)換為數(shù)據(jù)。代碼更具表現(xiàn)力;它將邏輯顯示為操作。代碼更具可測(cè)試性;邏輯被減少了。而且我們的比較更容易維護(hù);它們被合并為純數(shù)據(jù)。

讓我們將五個(gè)比較邏輯運(yùn)算減少為一個(gè),并將我們的值轉(zhuǎn)換為數(shù)據(jù)。

場(chǎng)景:我們需要將成績(jī)百分比轉(zhuǎn)換為對(duì)應(yīng)的字母成績(jī)。

if/else 很簡(jiǎn)單;我們從上到下檢查成績(jī)是否高于或等于匹配字母成績(jī)所需的成績(jī)。

const getLetterGrade = (gradeAsPercent) => {
 if(gradeAsPercent >= 90) {
  return "A";
 } else if(gradeAsPercent >= 80) {
  return "B";
 } else if(gradeAsPercent >= 70) {
  return "C";
 } else if(gradeAsPercent >= 60) {
  return "D";
 } else {
  return "F"
 };
};

但我們一遍又一遍地重復(fù)相同的邏輯運(yùn)算。

因此,讓我們將數(shù)據(jù)提取到一個(gè)數(shù)組中(以保留順序)并將每個(gè)等級(jí)的可能性表示為一個(gè)對(duì)象。現(xiàn)在我們只需對(duì)對(duì)象進(jìn)行一次 >= 比較,并找到數(shù)組中第一個(gè)匹配的對(duì)象。

const gradeChart = [
 {minpercent: 90, letter: 'A'},
 {minpercent: 80, letter: 'B'},
 {minpercent: 70, letter: 'C'},
 {minpercent: 60, letter: 'D'},
 {minpercent: 0,  letter: 'F'}
];

const getLetterGrade = (gradeAsPercent) => {
 const grade = gradeChart.find(
  (grade) => gradeAsPercent >= grade.minpercent
 );

 return grade.letter;
};

開始將您的比較想象為數(shù)據(jù)

當(dāng)你需要比較或“檢查”數(shù)值時(shí),很自然地會(huì)想到 if/else,這樣你就可以用語(yǔ)言逐步解決問題。但下一次,請(qǐng)?jiān)囍伎既绾螌⒛闹当硎緸閿?shù)據(jù),并通過簡(jiǎn)化邏輯來解釋這些數(shù)據(jù)。

您的代碼最終將變得更具可讀性、可維護(hù)性和目的性,并且其所代表的概念清晰分離。


原文:https://dreith.com/blog/theres-such-a-thing-as-using-too-many-ifs/

責(zé)任編輯:武曉燕 來源: 獨(dú)立開發(fā)者張張
相關(guān)推薦

2024-02-20 13:00:00

架構(gòu)設(shè)計(jì)模塊

2024-06-12 09:52:00

2024-09-09 00:00:00

編寫技術(shù)文檔

2023-04-03 00:09:13

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2024-02-20 21:34:16

循環(huán)GolangGo

2021-08-27 07:06:10

IOJava抽象

2022-10-08 00:00:05

SQL機(jī)制結(jié)構(gòu)

2023-06-30 08:18:51

敏捷開發(fā)模式

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-09-10 21:42:31

2024-11-27 16:07:45

2024-09-30 09:33:31

2023-11-06 07:21:02

DBaaSApachealpha版本

2024-11-27 08:47:12

2022-08-30 13:48:16

LinuxMySQL內(nèi)存

2021-11-04 06:58:31

CSS性能設(shè)備

2023-03-07 07:05:29

生產(chǎn)數(shù)據(jù)庫(kù)運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91亚洲精品久久久蜜桃网站| 国一区二区在线观看| 色综合咪咪久久| 一区不卡字幕| 日本xxxxxwwwww| 日本vs亚洲vs韩国一区三区 | 最好看的中文字幕| 成人在线黄色电影| 国产精品国产三级国产aⅴ原创| 999在线免费观看视频| 精品欧美一区二区三区免费观看| 日韩av片子| 亚洲成人a**站| 91亚洲免费视频| 麻豆理论在线观看| 亚洲精品乱码久久久久| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 国产三级一区二区三区| aa日韩免费精品视频一| 亚洲午夜精品久久久| 中文精品在线| 久国内精品在线| www.黄色在线| 免费看成人人体视频| 91精品福利在线一区二区三区 | 久久国产精品一区二区三区| 国产精品一区二区人人爽| 久久久久久9| 性欧美亚洲xxxx乳在线观看| 久久av红桃一区二区禁漫| 在线看成人短视频| 日韩av有码在线| av在线天堂网| 日韩成人在线看| 欧美乱熟臀69xxxxxx| 国产97色在线 | 日韩| 美女91在线看| 亚洲成在人线免费| 亚洲乱码日产精品bd在线观看| yiren22综合网成人| 337p粉嫩大胆色噜噜噜噜亚洲| 豆国产97在线| 亚洲av综合色区无码一二三区| 精品一区二区三区视频| 国产精品美女无圣光视频| 青青草免费观看视频| 99人久久精品视频最新地址| 欧美精品久久久久久久久| 欧美精品99久久久| 亚洲色图88| 久久精品久久久久久| 黄色录像免费观看| 亚洲九九在线| 欧美人与性动交a欧美精品| 国产高清视频免费在线观看| 欧美国产一级| 久久精品成人动漫| 日韩av手机在线免费观看| 91九色精品| 蜜月aⅴ免费一区二区三区 | 国产精品一区二区久久国产| 嫩草影院一区二区三区| 日本特黄久久久高潮| 国产精品无av码在线观看| 怡红院成永久免费人全部视频| 日欧美一区二区| 国产精品久久久久久av福利软件| 中文字幕日本视频| 精品一区二区免费看| 成人激情在线播放| www.麻豆av| av电影天堂一区二区在线观看| 九九九热999| 国产在线视频网站| 国产精品久久夜| 性生活免费观看视频| av第一福利在线导航| 日韩欧美亚洲成人| 在线看的黄色网址| 国产美女精品视频免费播放软件| 欧美mv日韩mv| 波多野结衣a v在线| 日韩免费一区| 久久99精品视频一区97| 久热这里只有精品6| 日产国产欧美视频一区精品| 91在线视频免费| 三级网站在线看| 国产欧美日本一区二区三区| 韩国黄色一级大片| 欧美男男激情videos| 欧美日韩国产bt| 中文字幕三级电影| 色一区二区三区四区| 久久99视频精品| 伊人成年综合网| 国产激情精品久久久第一区二区| 久久人人爽爽人人爽人人片av| 色综合久久影院| 精品国产户外野外| 在线观看免费av网址| 激情小说一区| 久久久国产精品视频| 99久在线精品99re8热| 狠狠色狠狠色综合日日91app| 国内一区二区在线视频观看| 欧美日韩视频在线播放| 五月婷婷久久丁香| 亚洲自拍第三页| 视频一区欧美| 97久久国产精品| 国产女人18毛片水18精| 久久久精品天堂| 久久99中文字幕| 亚洲色图图片| 亚洲欧洲午夜一线一品| 久久久久久久久97| 久久福利视频一区二区| 免费中文日韩| 2020国产在线| 日韩视频在线你懂得| 在线观看亚洲大片短视频| 国产一区白浆| 国产精品国产三级国产专区53| 黄色免费在线看| 欧美在线视频全部完| 亚洲国产欧美视频| 精品成人久久| 5g国产欧美日韩视频| 最近高清中文在线字幕在线观看| 欧美性xxxxxxx| 日韩成人av一区二区| 欧美三区在线| 97人人做人人人难人人做| 黄网站视频在线观看| 欧美三级视频在线观看| 蜜桃av乱码一区二区三区| 性感少妇一区| 国产精品一区二区你懂得| av在线free| 日韩欧美专区在线| 日韩三级久久久| 精品在线一区二区三区| 一本色道婷婷久久欧美 | 欧美日韩日本国产亚洲在线 | 欧美精品国产白浆久久久久| 色综合天天综合网国产成人网| 国产精品一级二级| 亚洲欧洲精品一区二区三区不卡| 男人添女人下面免费视频| 精品一区二区三区在线| 国产91色在线| 国产51人人成人人人人爽色哟哟| 色综合久久久久综合| ass精品国模裸体欣赏pics| 在线视频精品| 免费观看国产成人| 韩国成人动漫| 中文字幕日韩高清| 国产精品怡红院| 亚洲精品视频在线观看网站| 黄色激情在线观看| 国产亚洲精品v| 精品视频一区二区| 国产传媒av在线| 精品视频偷偷看在线观看| 国产嫩bbwbbw高潮| 国产清纯在线一区二区www| 亚洲国产高清av| 亚洲理论电影网| 国产日韩欧美一区二区| 在线看片国产福利你懂的| 国产亚洲精品久久久优势| 一级特黄aaa| 一区二区免费看| 成人免费毛片日本片视频| 天堂一区二区在线| 在线观看免费91| 福利电影一区| 国产精品海角社区在线观看| 欧美性猛交xxx乱大交3蜜桃| 欧美精品一区二区三区在线播放 | 欧美福利第一页| 精品一区二区三区久久| a级免费在线观看| 国内精品久久久久久久影视简单 | 91激情在线观看| 亚洲午夜私人影院| 无码人妻aⅴ一区二区三区69岛| 久久 天天综合| 成人免费毛片在线观看| 欧美精品色图| 国产一区二区中文字幕免费看| 人人鲁人人莫人人爱精品| 伦理中文字幕亚洲| 男人的天堂在线免费视频| 51精品秘密在线观看| 日韩在线视频免费播放| 1000部国产精品成人观看| 精品国产一区在线| 激情国产一区二区| 熟女人妇 成熟妇女系列视频| 91国语精品自产拍| 日韩激情久久| 韩国精品福利一区二区三区 | 91成人福利| 国产精品久久不能| 17videosex性欧美| 久久精品人人做人人爽| 免费人成黄页在线观看忧物| 日韩一区二区三区三四区视频在线观看 | 99视频精品全国免费| 美脚丝袜一区二区三区在线观看| 国产精品成人**免费视频| 日韩av手机在线看| heyzo高清中文字幕在线| www.日韩欧美| av在线电影院| 亚洲免费伊人电影在线观看av| 亚洲精品网站在线| 欧美一区二区网站| 中文字幕免费在线看| 欧美日韩中国免费专区在线看| 少妇久久久久久被弄高潮| 国产精品丝袜黑色高跟| 香蕉网在线播放| www.色综合.com| 亚洲欧美国产毛片在线| 国产人妖在线观看| 久久99精品久久久久久国产越南| 91九色在线观看视频| 伊人成年综合电影网| 影音先锋成人资源网站| 四虎成人精品永久免费av九九| 日本视频一区二区不卡| 全球av集中精品导航福利| 国产精品久久一区二区三区| 88久久精品| 国产精品一码二码三码在线| 77成人影视| 国产伦精品一区二区三区视频孕妇 | 黄色激情在线观看| 成人免费高清视频| 国产精品熟妇一区二区三区四区| 国产电影精品久久禁18| 午夜影院免费版| 国产一区二区三区四区五区美女| 深夜黄色小视频| 精品中文字幕一区二区小辣椒| 男生操女生视频在线观看| 久久精品免费看| 九九热99视频| 国产一区在线观看视频| 中文字幕人妻无码系列第三区| 国产一区二区导航在线播放| 久久黄色一级视频| 成人国产精品免费观看动漫| 性囗交免费视频观看| 91丨porny丨蝌蚪视频| 毛片网站免费观看| 国产女同互慰高潮91漫画| 国产精品视频在| 亚洲黄色尤物视频| 日本在线xxx| 国产香蕉在线视频| av在线中文| 韩国自拍一区| www.久久久久| 日本激情视频在线观看| 超碰97人人做人人爱少妇| 日韩激情av| 欧美与黑人午夜性猛交久久久| 欧美天堂视频| 成人在线国产精品| 91久久偷偷做嫩草影院电| 九九久久99| 日韩欧美高清| 国产91沈先生在线播放| 国产手机视频一区二区 | 久久一区二区三区四区五区 | 久草视频在线观| 在线视频欧美精品| 国产欧美熟妇另类久久久 | 中国成人亚色综合网站 | 国产精品视频一二三| 国语对白在线播放| 精品国产乱码久久久久久虫虫漫画| 久久久成人免费视频| 3751色影院一区二区三区| 人妻一区二区三区| 自拍视频国产精品| av男人的天堂在线观看| 国产精品美女午夜av| aiai久久| 亚洲资源视频| 雨宫琴音一区二区在线| 超碰超碰在线观看| 成人国产亚洲欧美成人综合网| 欧美一区二区三区粗大| 亚洲午夜精品网| 伊人免费在线观看| 亚洲精品久久久一区二区三区| 一级毛片视频在线| 欧美亚洲成人网| 精品欧美视频| 日韩一本精品| 精品白丝av| 三年中文在线观看免费大全中国| 91麻豆精东视频| 久久久综合久久| 欧美午夜精品一区| 三级在线观看| 久久免费高清视频| 亚洲视频自拍| 亚洲精品一品区二品区三品区| 日韩一级大片| 99国产精品免费视频| 国产精品狼人久久影院观看方式| 久草视频在线观| 欧美精品一区二区三区很污很色的| 亚洲图片88| 国产精品高潮呻吟视频| 欧美精品中文| www.av毛片| 国产成人av福利| 欧洲第一无人区观看| 欧美午夜精品久久久| 青青久草在线| 91高清视频免费观看| 99久久人爽人人添人人澡| 手机在线视频你懂的| 精品一区二区三区香蕉蜜桃| 超薄肉色丝袜一二三| 91精品福利视频| 欧美伦理影视网| 欧美亚洲日本网站| 日韩欧美国产大片| 男女视频网站在线观看| 成人动漫在线一区| 国产亚洲色婷婷久久99精品| 日韩精品综合一本久道在线视频| 久cao在线| 91九色在线视频| 91欧美国产| www.五月天色| 亚洲免费观看高清完整版在线 | 久久国产成人| 少妇光屁股影院| 欧美午夜片在线免费观看| 人操人视频在线观看| 国产97在线|日韩| 国产一区网站| 国产野外作爱视频播放| 亚洲国产精品精华液2区45| 国产精品第6页| 中文字幕在线亚洲| 91国产精品| 国产情侣第一页| 不卡一二三区首页| 五月天婷婷久久| 国产亚洲a∨片在线观看| 福利一区二区免费视频| 一区二区三区的久久的视频| 久久精品国产99| 欧美黑吊大战白妞| 亚洲国产欧美在线成人app| 欧美日韩国产观看视频| 欧洲精品在线一区| 久久99精品国产| 男女免费视频网站| 日韩精品中文字幕视频在线 | 99久久久精品免费观看国产| 国产精品久久| 蜜桃精品成人影片| 欧美特级限制片免费在线观看| 欧美一区二区三区在线观看免费| 不卡视频一区二区三区| 一本色道久久综合亚洲精品不卡| 中文幕无线码中文字蜜桃| 欧美人与禽zozo性伦| 日日夜夜天天综合入口| 蜜桃视频在线观看成人| 久88久久88久久久| 日韩美女黄色片| 色偷偷88888欧美精品久久久| 日韩精品免费视频一区二区三区| 极品美女扒开粉嫩小泬| 国产精品久久三区| 天堂在线中文网| 国产欧洲精品视频| 亚洲美女一区| 网爆门在线观看| 亚洲国产精品va在看黑人| 日韩精品一区二区三区av| 国产性生活免费视频| 国产亚洲欧美色| www.久久久久久| 国产精品免费小视频| 伊人久久综合| 欧美一级特黄高清视频|