概述
前言
日常开发中经常要针对不同业务场景作出不同行为与判断,在最早接触的时候普遍都是使用如下代码进行业务区分:
if(res.data.code===0){
//do something
}else if(res.data.code===1002){
//do something
}else if(res.data.code===1004){
//do something
}else{
//do something
}
这样的代码既不好维护又十分冗长,既不优雅又不美观,属于典型的低质量代码.
稍微进阶一点的会懂得使用switch函数进行简化和区分,但并不能从根本上解决这类问题.
究其原因,此类低质量代码产生的实质来源于面向过程编程的缺陷.
如何解决?
Map
new Map([array1,array2])语法是ES6中诞生的,主要功能是将多个键值对数组合并成一个新的Map对象,其本质与使用不同于Object,详细区别点击这里查看:What is Map?
Map简单的set/get使用
Map对象的创建会对键值进行顺序插入,对相同的键仅会保留最后顺序的值
const StatusCode = new Map(
[[401,'请求错误'],[402,'未授权'],[403,'拒绝访问']]
);
StatusCode.get(401) //'请求错误'
StatusCode.set(401,'My lord,the time has changed!')
StatusCode.get(401) //'My lord,the time has changed!'
StatusCode.set([404,'first'],[404,'second'])
StatusCode.get(404) //second
复杂业务函数处理
const _this = this;
const StatusCode = new Map([
[
401,
async () => {
console.log(_this.requset(params));
}
],
[
402,
() => {
console.log("未授权");
}
],
[
403,
() => {
console.log("拒绝访问");
}
]
]);
const ShowMessage = code => {
//Map对象转数组
[...StatusCode].forEach(([key, value]) => {
key === code ? value.call() : "";
});
};
ShowMessage(402) //'未授权'
最后
以上就是满意大侠为你收集整理的如何优化代码中的多层if嵌套前言Map的全部内容,希望文章能够帮你解决如何优化代码中的多层if嵌套前言Map所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复