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

标签 javascript

使用 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/

相关文章:

javascript - 如何使用 Javascript 动态填充 Django 模板中的选择列表?

c# - jQuery ajax 发布当前日期时间 ASP.NET Web API

javascript - 从服务 Javascript 接收变量 - React Hooks

javascript - 输入回车提交

php - 在警告对话框中显示 Mysql 结果

javascript - 如何制作一个可以改变文档背景颜色的按钮?

Image.onload() 的 JavaScript 循环/作用域问题

javascript - 使用 focusOut jquery 定位多个字段

javascript - 如何根据数组访问对象的属性

javascript - 删除帖子之间的空间 [bootstrap]