首页 > 解决方案 > 使用 if 语句过滤具有多个字符串值的数据

问题描述

使用 If 语句过滤具有多个字符串值的数据

我想在一行中对文件扩展名进行排序,因为如果我不这样做,我必须编写多行代码,我认为这是浪费时间。我能在这里得到帮助吗

if (fileExtension === "jpg"||"Jpeg"||"png"||"svg"){
//do something 
}
else{
//do something else
}

如果有这样的文件扩展名 jpg 那么它直接切换到 else 语句,如果我只给出 jpg ieif (fileExtension === "jpg")那么代码运行良好我想使用多个。

标签: javascript

解决方案


"jpg"||"Jpeg"||"png"||"svg"是一个表达式,它将评估为第一个真值。这"jpg"是第一个真实值,因此整个表达式变为"jpg". 请参阅短路评估

您可以将所有值存储在数组中,然后some()在数组上使用并将其与fileExtension

"Jpeg"可能会导致一些问题。资本J。我建议您将所有值更改为小写,然后在内部进行比较some()

let fileExtension = "svg"

if (["jpg","jpeg","png","svg"].some(x => fileExtension.toLowerCase() === x)){
  console.log("found")
}
else{
  cosnole.log("not found")
}

注意:您也可以includes()在这种情况下使用。但我更喜欢some(),因为它允许用户与多个条件进行比较


推荐阅读