使用 If 语句过滤具有多个字符串值的数据
我想在一行中对文件扩展名进行排序,因为如果我不这样做,我就必须编写多行代码,我认为这是浪费时间。我可以在这里得到一些帮助
if (fileExtension === "jpg"||"Jpeg"||"png"||"svg"){
//do something
}
else{
//do something else
}
如果有这样的文件扩展名 jpg 那么它直接切换到 else 语句,如果我只给出 jpg 即 if (fileExtension === "jpg")
那么代码运行良好我想使用多个.
最佳答案
"jpg"||"Jpeg"||"png"||"svg"
是一个计算结果为第一个真值的表达式。这里 "jpg"
是第一个真值,因此整个表达式变成 "jpg"
。请参阅Short-circuit evaluation
.
您可以将所有值存储在数组中,然后在数组上使用 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()
因为它允许用户与多个条件进行比较
关于javascript - 使用 if 语句过滤具有多个字符串值的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688514/