简单的逻辑
<script>
function speak1(name) {
if (name === "老牛") {
console.log("老牛哞哞叫");
}else if (name === "老虎") {
console.log("老虎嗷嗷叫");
}else if (name === "小猫") {
console.log("小猫喵喵叫");
}else {
console.log("不知道怎么叫");
}
}
speak1("老虎");
function goodSpeak1(name) {
const map = {
"老牛": () => console.log("老牛哞哞叫"),
"老虎": () => console.log("老虎嗷嗷叫"),
"小猫": () => console.log("小猫喵喵叫"),
}
if (map[name]) {
map[name]();
}else {
console.log("不知道怎么叫");
}
}
goodSpeak1("老虎");
</script>
复杂的逻辑
<script>
function speak2(name) {
if (name.includes("牛")) {
console.log(name + "哞哞叫");
}else if (name.endsWith("虎") && name.length <= 3) {
console.log(name + "嗷嗷叫");
}else if (name.endsWith("猫") && !name.includes("狗")) {
console.log(name + "喵喵叫");
}else {
console.log("不知道怎么叫");
}
}
speak2("东北虎");
function goodSpeak2(name) {
const map = [
[
() => name.includes("牛"),
() => console.log(name + "哞哞叫")
],
[
() => name.endsWith("虎") && name.length <= 3,
() => console.log(name + "嗷嗷叫")
],
[
() => name.endsWith("猫") && !name.includes("狗"),
() => console.log(name + "喵喵叫")
],
];
const target = map.find(m => m[0]());
if (target) {
target[1]();
} else {
console.log("不知道怎么叫");
}
}
goodSpeak2("东北虎");
</script>