我尝试用switch case测试一个特定的字符串,然后找到这段代码:
let prop = "date myData";
switch (true) {
case /str/.test(prop) :
console.log("tata");
break;
case /date/.test(prop):
console.log("toto");
break;
case /enum/.test(prop) :
console.log("titi");
break
default :
console.log("Nada");
break;
}
它有效,但它无法解决我的问题。我想特别得到字符串“date”。以前没有任何事情,没有任何事
我这个例子,我希望我的控制台显示“Nada”。
我不知道如何使用此代码执行此操作。 一个办法 ? :)
答案 0 :(得分:1)
您需要正则表达式中的开始和结束符号
/^date$/
或带字符串和等式的简单测试
prop === 'date'
或
switch (prop) {
case 'date':
console.log('date');
break;
}
答案 1 :(得分:1)
对于你所拥有的东西,开关不是你的第一选择 - 你也只是比较字符串的相等性 - 所以更简单的方法是以下
let prop = "date myData";
let strings = {str: "tata", date: "toto", enum:"titi"}
let res = strings[prop] || "Nada";
console.log(res);
答案 2 :(得分:0)
要测试多个字符串的相等性,可以像这样堆栈case语句:
switch (true) {
case prop === "date":
case prop === "param2":
// Do something
break;
}
或者测试是否包含在静态数组中:
switch (true) {
case ["date", "param2"].includes(prop):
// Do something
break;
}
尽管启用true
可能不是最有效的方法。