首页 > 其他分享 >if else的多种替换方式

if else的多种替换方式

时间:2023-10-14 22:49:18浏览次数:36  
标签:function 多种 return experience else let value 替换

1)利用逻辑判断的短路运算来实现 && 和 ||(&& 中第一个表达式为假就不会去处理第二个表达式,|| 则相反)

// if为真
if (bool) {
 value = getYes();
}
// &&改版
bool && (value = getYes());
 
// if为假
if (!bool) {
 value = getNo();
}
bool || (value = getNo());

2)三元运算符改写if else

// if 版本
if (bool) {
 value = 1;
} else {
 value = 2;
}
 
// 三元运算符 版本
value = bool ? 1 : 2;

3)数据驱动法

function formatData(a) {
  let c = "";
  if (a === 1) {
    c = "汉族";
  } else if (a === 2) {
    c = "苗族";
  } else if (a === 3) {
    c = "维吾尔族";
  } else if (a === 4) {
    c = "回族";
  } else if (a === 5) {
    c = "藏族";
  }
 	// ... 等等等等
  
  return c;
}
var result = formatData(2) // 对应的苗族

数据驱动版本
const obj = {
  1: "汉族",
  2: "苗族",
  3: "维吾尔族",
  4: "回族",
  5: "藏族",
  // ...等等等等
};
function formatData(a) {
  return obj[a]
}
var result = formatData(2);  // 苗族

4)ES6 的 map 数据结构

function del(){}; // 删除操作
function add(){}; // 新增
function update(){}; // 更新
function process(operateType) {
    if (operateType === 'del') {
        del()
    } else if (operateType === 'add') {
        add()
    } else if (operateType === 'update') {
        update()
    };
};
process('del');// 删除

es6的map数据结构
let typeFn = new Map([
    ['del', function () {/*do something*/ }],
    ['add', function () {/*do something*/ }],
    ['update', function () {/*do something*/ }],
]);

function process(operateType) {
    typeFn.get(`${operateType}`)();
};
process('del'); // 删除

5)数组

function youAreMyHero(experience) {
    if (experience < 100) {
        return '萌新';
    } else if (experience < 200 && experience >= 100) {
        return '骑士';
    } else if (experience < 300 && experience >= 200) {
        return '英雄';
    } else if (experience >= 300) {
        return '传说';
    };
};
let level = youAreMyHero(351); //传说

数组替代
function youAreMyHero(param) {
    let experience = [300, 200, 100];
    let level = ['传说', '英雄', '骑士', '萌新'];

    for (let i = 0; i < experience.length; i++) {
        if (param >= experience[i]) {
            return level[i];
        };
    };
    return level[level.length - 1];
};

let level = youAreMyHero(250); //英雄

  

标签:function,多种,return,experience,else,let,value,替换
From: https://www.cnblogs.com/florazeng/p/17764877.html

相关文章

  • 标准工时制度通过多种方式提高生产效率
    标准工时制度在现代企业管理中扮演着重要的角色,它可以通过多种方式提高生产效率。在如今竞争激烈的市场环境下,企业需要持续提高运营效率以保持竞争力。以下是标准工时制度提高生产效率的一些主要途径:首先,标准工时制度可以帮助企业更准确地预测生产需求。通过对历史数据和市场趋势......
  • 关于response.setHeader的重定向及多种界面跳转方式
    通过response.setHeader("refresh","1;URL=ttt.jsp");可以在一秒之后自动跳转到ttt.jsp界面 response.sendRedirect("ttt.jsp");立即跳转 <inputtype="button"onclick="javascript:window.location.href='ttt.jsp';&quo......
  • 用设计模式优雅干掉 if-else,真香...
    鲁讯曾说:"高端的代码,只需要最朴素的编写方式",简单的业务使用if-else或switchcase,确实直观明了,但是一旦功能复杂,业务流程长了之后,使用传统的if-else或switchcase方式,就会让代码结构变的异常冗余、混乱,过一段时间之后,哪怕是自己写的代码,读起来也会忍不住想喷上几句,这时候,如......
  • 策略 + 枚举 优雅的消灭 if-else
    可能初学者都会忽略掉一点,其实if-else是一种面向过程的实现。那么,如何避免在面向对象编程里大量使用if-else呢?网络上有很多解决思路,有工厂模式、策略模式、甚至是规则引擎(这个太重了吧)......这些,都有一个共同的缺点,使用起来还是过于繁重了。虽说起到了消除if-else的作用,但是,......
  • 开源项目 | SpringBoot+XXL-JOB 构建的汽车之家开源的监控平台,支持多种报警消息发送方
     一、项目概述Frostmourne(霜之哀伤)是汽车之家经销商技术部监控系统的开源版本,用于帮助监控几乎所有数据库数据(包括Elasticsearch,Prometheus,SkyWalking,MySql等等)。如果你已经建立起了日志系统,指标体系,却苦恼于没有一个配套监控系统,也许它能帮到你。使用本系统得当,至......
  • Oracle 替换回车和换行
      --替换回车和换行updatedc_group_parametertsett.description=replace(replace(t.description,chr(10),''),chr(13),'')wheret.description<>replace(replace(t.description,chr(10),''),chr(13),'');--替换双引号......
  • sed 替换命令
    CreateaBackupTocreateabackupfilebeforeoverwritingtheexistingone,addthe.bakparametertothe-itag.sed-i.bak's/foo/FOO/g'example.txt MatchandReplaceAllCasesTofindandreplaceallinstancesofawordandignorecapitaliza......
  • Linux批量替换文件内容
    示例方法:Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的字符串。sed-i"s/原字符串/新字符串/g"`grep原字符串-rl所在目录`例如:我要把mahuinan替换为huinanma,执行命令:sed-i"s/mahui......
  • golang 反斜杠替换
    难点主要是golang和Java类似双引号定义字符串pythonphp单双引号通吃只是上代码packagemainimport( "fmt" "strings")funcmain(){ str:="+++\\+++" replacedStr:=strings.Replace(str,"\\","",-1) fmt.Println(......
  • fiddler 使用自动相应 替换js
    fiddler使用自动相应替换js   ......