我第一次使用 switch
时,我在返回任何东西时遇到了一些问题。作为测试,我采用了一个字符串,并根据测试的字符,控制台记录了一些字符串输出。
function pairElement(str) {
switch (str) {
case "A":
console.log("some things")
break;
case "G":
console.log("some more things")
break;
}
}
pairElement("ACG");
这些案例属于相同的值类型,所以我不确定我在这里做错了什么。任何帮助将非常感激。
最佳答案
根据您在 switch 语句中处理的值,您的测试无效。您只处理 A
和 G
的情况,但您通过了 ACG
。如果指定的任何案例不匹配,Switch 将无法执行,因为您也缺少默认案例。如果满足以下条件,您的测试将是有效的:
function pairElement(str) {
switch (str) {
case "A":
console.log("some things")
break;
case "G":
console.log("some more things")
break;
}
}
pairElement("A"); // some things - valid
pairElement("G"); // some more things - valid
pairElement("ACG"); // switch case and no default - NOT valid
添加默认值会给你:
function pairElement(str) {
switch (str) {
case "A":
console.log("some things")
break;
case "G":
console.log("some more things")
break;
default:
console.log("something ELSE")
}
}
pairElement("A"); // some things - valid
pairElement("G"); // some more things - valid
pairElement("ACG"); // something ELSE - valid
现在还有一个问题,当您测试多字符串与单个字符串时,您究竟期望什么。在您的 switch 类型中处理单个字符会让您无法预期传递给您的函数的字符串会被 tested
char by char,如果是这样,您需要说明这一点,因为这会改变问题/要求。
更新你想要一个字符一个字符的场景:
function pairElement(str) {
str.split('').forEach(function(v) {
switch (v) {
case "A":
console.log("some things")
break;
case "G":
console.log("some more things")
break;
default:
console.log("something ELSE")
}
}
)
}
pairElement("ACG");
// some things
// something ELSE
// some more things
关于javascript - Switch 语句不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575140/