当前位置: 首页 > 面试题库 >

Javascript if语句具有多个允许条件[重复]

钮出野
2023-03-14
问题内容

在JS中,我试图检查扩展名是否以“ png”“ jpg”或“
gif”结尾。我知道这可以通过switch语句来完成,但是我想知道是否有一种更简单的方法可以将所有if条件都放入条件语句中。喜欢:

    if (aExtensions[i].toLowerCase() == ('jpg' || 'png' || 'gif')) {}

实现此目标的最佳方法是什么?


问题答案:

您可以使用如下数组:

var extensions = ["jpg", "png", "gif"];

if (extensions.indexOf(aExtensions[i].toLowerCase()) > -1) {
    // match
}

在这种情况下,您将存储“有效”扩展名。然后,您可以使用的indexOf方法Array来查找数组中的任何项目是否与您正在查看的特定扩展名相匹配-
检查值是否0大于或等于。

indexOf较旧的浏览器不支持此功能,因此您需要包括一个polyfill来对其进行备份。有几种解决方案。

当然,如果只想使用if语句,则可以使用以下格式:

var ext = aExtensions[i].toLowerCase();
if (ext == "jpg" || ext == "png" || ext == "gif") {
    // match
}

我可以想到的另一种可能性是switch声明,例如:

var ext = aExtensions[i].toLowerCase();

switch (ext) {
    case "jpg":
    case "png":
    case "gif":
        // match
        break;
    case default:
        // No match
}

我也可以包括它(其他答案肯定是第一个),但是我想到的还有一个使用正则表达式,例如:

if (/jpg|png|gif/i.test(aExtensions[i])) {
    // match
}

但是请注意,您将永远无法单独获得这些扩展,这就是为什么我希望我提供的前两个选项之一。



 类似资料:
  • 问题内容: 我有一个变量。 我想呼应,如果等于任何下列值,,,,或。有没有办法通过像?? 这样的单个语句来做到这一点? 问题答案: 我认为,使用“ Or”代替“ And”会有所帮助

  • 我想知道我是否能得到一些帮助,让我的java看起来更好。目前,我正在做一些家庭作业,当我纠正一个if语句的多个条件时,它看起来非常混乱,就像下面的一个。我试着看看str.charat(p)是否等于任何元音,但是这看起来很糟糕,一个接一个地写出来。有更好的办法吗?

  • 我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。例如。: 你会如何把这些浓缩成一个陈述? 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件。

  • 有什么想法吗? 多谢了。

  • 我有这个代码: 它需要一个输入来填充,所以一个特定的按钮得到一个类添加。现在我想要检查多个输入,如果它们都被填充而不是空的,我想要添加类“UK-Button-Success”到一个按钮。 我试过的其他方法都不起作用。 我该怎么做?

  • 问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄