问题描述
这只是我正在尝试做的一个简单示例:
This is just a simple example of what I'm trying to do:
switch (window.location.href.contains('')) {
case "google":
searchWithGoogle();
break;
case "yahoo":
searchWithYahoo();
break;
default:
console.log("no search engine found");
}
如果不可能/不可行,那么更好的选择是什么?
If it's not possible/feasible what would be a better alternative?
解决方案:
在阅读了一些回复后,我发现以下是一个简单的解决方案.
After reading some of the responses I found the following to be a simple solution.
function winLocation(term) {
return window.location.href.contains(term);
}
switch (true) {
case winLocation("google"):
searchWithGoogle();
break;
case winLocation("yahoo"):
searchWithYahoo();
break;
default:
console.log("no search engine found");
}
推荐答案
是的",但它不会像你期望的那样.
"Yes", but it won't do what you expect.
用于切换的表达式被评估一次 - 在这种情况下,contains 评估结果为真/假(例如 switch(true) 或 switch(false)), 不是一个 case 中可以匹配的字符串.
The expression used for the switch is evaluated once - in this case contains evaluates to true/false as the result (e.g. switch(true) or switch(false))
, not a string that can be matched in a case.
因此,上述方法行不通.除非此模式更大/可扩展,否则只需使用简单的 if/else-if 语句.
As such, the above approach won't work. Unless this pattern is much larger/extensible, just use simple if/else-if statements.
var loc = ..
if (loc.contains("google")) {
..
} else if (loc.contains("yahoo")) {
..
} else {
..
}
但是,请考虑是否存在返回google"或yahoo"等的classify 函数,可能使用上述条件.然后它可以这样使用,但在这种情况下可能会过大.
However, consider if there was a classify function that returned "google" or "yahoo", etc, perhaps using conditionals as above. Then it could be used as so, but is likely overkill in this case.
switch (classify(loc)) {
case "google": ..
case "yahoo": ..
..
}
<小时>
虽然上面讨论了 JavaScript 中的此类问题,但 Ruby 和 Scala(可能还有其他)提供了处理一些更高级开关"使用的机制.
While the above discusses such in JavaScript, Ruby and Scala (and likely others) provide mechanisms to handle some more "advanced switch" usage.
这篇关于是否可以在 switch 语句中使用 .contains() ?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!



大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)