概述
优化代码,让代码更优雅
写项目的时候你会发现一些函数中的分支会特别多,该如何优化呢?如何让代码更加优雅?
- 初级难度
function test(val) {
if (val == "小明") {
console.log("小明去吃饭");
} else if (val == "小王") {
console.log("小王去玩");
} else if (val == "小白") {
console.log("小白去写作业");
} else if (val == "小张") {
console.log("小张去做饭");
} else {
console.log("没有这个人");
}
}
test("小王")
例如上面的例子,这样写test
函数,既没有高级感,代码也很臃肿,假如其中有一百种情况呢?甚至更多呢?
function test(val) {
let map = {
小明: "小明去吃饭",
小王: "小王去玩",
小白: "小白去写作业",
小张: "小张去做饭",
};
if (map[val]) {
console.log(map[val]);
} else {
console.log("没有这个人");
}
}
test("小王")
将代码如此处理之后,便可以更好的管理,也更加的高级。假如情况更加复杂一些呢?
- 中级难度
假如每个人对应的都是一段复杂的代码,一个函数。又该如何处理?
function test(val) {
let map = {
小明: () => {
console.log("小明去吃饭");
},
小王: () => {
alert("小王去玩");
},
小白: () => {
console.warn("小白去写作业");
},
小张: () => {
console.error("小张去做饭");
},
};
if (map[val]) {
map[val]();
} else {
console.log("没有这个人");
}
}
test("小王")
可以如上,将map
的value
值封装为一个函数即可
- 高级难度
假如其中要求一些判断条件如何写呢?比如,名字中含王的运行一个函数,姓张的人运行一个函数,以帅结尾的运行一个函数
function test(val) {
// includes()方法用来判断当前字符串是否包含另外一个给定的子字符,并根据判断结果返回 true 或 false。
// startsWith()方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
// endsWith()方法用来判断当前字符串是否以另外一个给定的子字符串结尾,并根据判断结果返回 true 或 false。
if (val.includes("王")) {
() => {
console.log(val + "出去玩");
};
} else if (val.startsWith("张")) {
() => {
console.error(val + "写作业");
};
} else if (val.endsWith("帅")) {
() => {
console.warn(val + "做饭");
};
} else {
console.log("没有这个人")
}
}
test("小王")
上面的写法和我们之前的写法一样,不具有高复用性,我们修改一下,让他更具有高级感和复用性
function test(val) {
// find() 方法为数组中的每个元素都调用一次函数执行:
// 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
// 如果没有符合条件的元素返回 undefined
let arr = [
[
val.includes("王"),
() => {
console.log(val + "出去玩");
},
],
[
val.startsWith("张"),
() => {
console.error(val + "写作业");
},
],
[
val.endsWith("帅"),
() => {
console.warn(val + "做饭");
},
],
];
let target = arr.find((item) => {
item[0]();
});
if (target) {
target[1]();
} else {
console.log("没有这个人");
}
}
test("小王")
经过优化后,代码更加清晰,复用性更高,后面不论增加多少条件,直接增加在arr
数组中即可
最后
以上就是心灵美方盒为你收集整理的前端vue+js 优化代码分支的全部内容,希望文章能够帮你解决前端vue+js 优化代码分支所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复