if else的多种替换方式
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); //英雄
if else的多种替换方式的更多相关文章
- C#高性能TCP服务的多种实现方式
哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C#编写TCP服务的花样姿势!>. 本篇文章的主 ...
- C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍
在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一印象,我们要规划好这些菜单的内容,布局等信息.根据微信菜单的定义,我们可以看到,一般菜单主要分为两种,一 ...
- 顺序表及其多种实现方式 --- C/C++
所谓顺序表,即线性表的顺序存储结构.下面给出的是数据结构---线性表的定义. ADT List{ 数据对象: 线性表的数据对象的集合为{a1,a2,a3,...,an},每个元素的类型为ElemTyp ...
- css考核点整理(九)-有几种文字替换方式,之间的优缺点
有几种文字替换方式,之间的优缺点
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...
- hql语句拼接的替换方式
hql语句拼接的替换方式 hql语句拼接 String hql = "FROM Topic t WHERE t.forum=? "; List<Object> para ...
- Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护
Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 数据加密又称password学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文.而解密则是通过解密 ...
- spring 文件模板下载多种实现方式
针对于文件的下载,我们有很多种实现方式.业务场景是这样子的,要实现Excel文件的导入和导出功能,问题对于java的POI操作没有问题,所以实现文件的下载就相对简单,只需要从数据库取出相关的数据,针对 ...
- C# 高性能 TCP 服务的多种实现方式
哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C# 编写 TCP 服务的花样姿势!>. 本篇文 ...
- SVN服务的模式和多种访问方式 多种访问原理图解与优缺点
SVN企业应用场景 SVN任是当前企业的主流.git正在发展,未来会成为主流.如果大家精力足够,建议同时掌握. 1.4运维人员掌握版本管理 对于版本管理系统,运维人员需要掌握的技术点: 1.安装.部署 ...
随机推荐
- 这款PDF解析工具,精准触达大模型问答应用的需要
过去的一年,是大语言模型快速发展的一年.大模型强大的语言理解能力,逐渐让用户习惯了将各类文章丢给大模型,让它来帮忙总结提炼.从产品角度看,这是一次10倍体验的飞跃,意味着巨大的市场机会.也因此,市面上 ...
- CSS – Icon
前言 Icon 并不容易搞. 市场有许多平台支持 Icon, 有些收费有些免费. 有些 icon 很丰富, 有些很缺失. 尤其是在做网站的时候寻找 icon 是一个挺累的事情. 这篇就来聊聊 icon ...
- ASP.NET Core – 读写 Request / Response
需求 常见的需求就是从 request 里面读取一些 information. 比如 request URL, header, cookie, 写入 response header, cookie 实 ...
- 开源项目dotnet/eshop 和 dotnet/eshopsupport
dotnet/eshop[1] 和 dotnet/eshopsupport[2] 是两个与 .NET 相关的开源项目,分别用于展示电子商务应用的不同方面. dotnet/eshop: 功能与架构:do ...
- MybatisPlus——入门案例
MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发.提高效率 开发方式 基于MyBatis使用MyBatisPlus 基于Sprin ...
- [Tkey] 与非
解法原理1 首先我们需要明白 \(\operatorname{nand}\) 的运算: \[\operatorname{not}(a\operatorname{nand}b)=a\operatorna ...
- 【赵渝强老师】MongoDB管理用户的认证机制
一.MongoDB用户认证机制简介 为了认证客户端,你必须要添加一个对应的用户到MongoDB.基本的步骤分为以下几步: 用户管理接口:db.createUser()方法可以创建一个用户,添加完成后可 ...
- CMake 属性之目标属性
[写在前面] CMake 可以通过属性来存储信息.它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标.例如一个全局的属性可以是一个有用的非缓存的全局变量. 在 CMake 的众 ...
- Linux如何使用trim命令保持SSD的读写速度
随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,SSD硬 ...
- CE-植物大战僵尸杂交版
植物大战僵尸杂交版 偏移:208+82c