优化层叠的条件判断

在项目过程中经常遇到需要做条件判断。在判断条件比较多的情况下我们一般使用的方法是如下:

 1 if (color) {
 2   if (color === ‘black‘) {
 3     console.log(color);
 4   } else if (color === ‘red‘) {
 5     console.log(color);
 6   } else if (color === ‘blue‘) {
 7     console.log(color);
 8   } else if (color === ‘green‘) {
 9     console.log(color);
10   } else {
11     console.log(color);
12   }
13 }

机智点的可以使用switch

 1 switch(color) {
 2   case ‘black‘:
 3     console.log(color);
 4     break;
 5   case ‘red‘:
 6     console.log(color);
 7     break;
 8   case ‘blue‘:
 9     console.log(color);
10     break;
11   case ‘green‘:
12     console.log(color);
13     break;
14   default:
15     console.log(color);
16 }

尽管这样能解决并且更有序,但不推荐这样做,因为会给debug增加麻烦。而且语句需要不断的做判断。

尽可能 的与避免使用switch那么就需要一个高效的方法,那就是通过一个Object;

 1 var colorObj = {
 2   ‘black‘: console.log(color),
 3   ‘red‘: console.log(color),
 4   ‘blue‘: console.log(color),
 5   ‘green‘: console.log(color),
 6   ‘yellow‘: console.log(color),
 7 };
 8
 9 if (color && colorObj.hasOwnProperty(color)) {
10   colorObj[color]();
11 }
时间: 2024-08-25 16:21:37

优化层叠的条件判断的相关文章

JS条件判断小技巧

经常code review,我发现很容易写出一堆冗长的代码.今天就列几个比较常见的“解决之道”,看看如何减少JS里的条件判断. 提前返回,少用if...else 但是过多的嵌套,还是挺令人抓狂的.这里有一个很典型的条件嵌套: function func() { var result; if (conditionA) { if (condintionB) { result = 'Success'; } else { result = 'Error1'; } } else { result = 'E

PHP和JS在循环、条件判断中的不同之处

一.条件判断: php中算  false 的情况 1. boolean:false 2. 整形:0 3.浮点型:0 4.字符串:"" "0"(其他都对) 5.空数组 6.空对象为真(只在php4算false,其他版本都算true) 7.null和尚未定义的变量 8.所有资源都算对,除php4,所有对象也算对 JS中if()中的表达式 1. Boolean: true 真 false 假 2. String:非空字符串为真 空字符串为假 3. Null/NaN/Und

python-FIrst1--变量赋值-注释-用户交互-条件判断与缩进

变量与赋值 name='mike'          #这里一定要注意,如果右边的值不是数字,就一定要加引号,否则系统会认为右边也是一个变量,而右边我们希望是一个值,所以这时候我们就需要给右边加上单引号或者双引号,以表示右边是一个字符串. age=39 把右边的值赋予左边,就是赋值,左边的name和age就叫做变量. 注释 可以用#符号来表示,也可以用一对三个连续的单引号和双引号来表示多行注释,当要注释的内容不多的时候用#比较方便,当要注释很多行内容尤其是超过三行的时候最好用,一对 三个单引号或

MYSQL数据类型和where条件判断

MySQL中常见的数据类型 一.字符型 ① CHAR(N):固定N个字符长度的字符串,如果长度不够自动空格补齐; N的范围 0~255 ② VARCHAR(N): 存储可变长度的字符串,最常用 ③ TEXT: 存储可变长度的字符串,(常用于发布文章等大段内容) ④ TINYTEXT:0~2^8-1 *10 ⑤ MEDIUMTEXT: 0~2^24-1 *10^3; ⑥ LONGTEXT: 0~2^32-1 * 10^4;二.整形: ① TINYINT: 无符号0~2^8-1 有符号 -2^7 ~

shell条件判断

条件判断式 只要讲到程序的话,那么条件判断式,亦即是if then这种判别式肯定一定要学习的,另外一种是case...esac if....then 这个是if...then 是最常见的条件判断式了,它分为单分支条件判断式,双分支条件判断式,多分支条件判断式 单分支条件判断语句: if [ 条件判断式 ] then 输出内容 fi 双分支条件判断式: if [ 条件判断式 ] then 输出内容 else 输出内容 fi 多分支条件判断式 if [ 条件判断式 ] then 输出内容 elif

if条件判断

比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: #!/usr/bin/env python #-*- coding:utf-8 -*- age = 3 if age >= 18:     print('your age is', age)     print('adult') else:     print('your age is', age)     print('teenager') 多条件判断 if <条件判断1>:     <执行1&g

Nginx if 条件判断

Nginx if 条件判断: 1.公司网站上线有这样的需求: 由于公司网站域名从http到https的转移,在测试阶段需要公司内部进行测试,公司内部局域网访问时强制访问加密的https服务,外部用户访问正常的http服务. 第一种方法: if ( $http_x_forwarded_for ~ ^106\.38\.53\.130|210\.12\.103\.18) { return 301 https://www.xxx.cn$request_uri; } #有的说nginx不支持这种if写法,

(6)javascript的程序控制结构及语句-----(1)条件判断

程序控制结构及语句 编程就是将现实应用,转换为程序能够读得懂的语法语句.Javascript编程中对程序流程控制主要是通过条件判断语句.循环控制语句及continue.break来完成的,其中条件判断按预先设定的条件执行顺序,它包括if语句和switch语句:而循环控制语句则可以重复完成任务,它包括while语句.do...while语句及for语句. 一.条件判断语句: 条件判断语句就是对语句中不同条件的值进行判断,进而根据不同条件执行不同的语句.条件判断语句有"if条件语句"和&q

Sass学习笔记 -- 初步了解函数、运算、条件判断及循环

函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以lighten减淡和darken加深为最,其调用方法为lighten($color,$amount)和darken($color,$amount),它们的第一个参数都是颜色值,第二个参数都是百分比. //scss $baseFontSize:      10px !default; $gray: