是否可以在 switch 语句中使用 .contains() ?

编程入门 行业动态 更新时间:2024-10-28 18:34:17
本文介绍了是否可以在 switch 语句中使用 .contains() ?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这只是我正在尝试做的一个简单示例:

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() ?

本文发布于:2023-11-05 19:54:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1561693.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   switch

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!