在.includes()中使用逻辑运算符-获取错误

时间:2019-04-10 19:19:52

标签: javascript jquery function operators

我有一些代码可以在特定文档的旁边附加文件扩展名图标,即所有.pdf文件旁边都有一个PDF图标。

某些文档以docDOCX结尾,因此我尝试实现.includes('doc' || 'DOCX'),但是我收到一个错误,DOCX最终没有加载。因此,对于每种变化,我都只做了.includes('ext name')) { return ... etc,但是它很麻烦,我想看看它们是否可以缩短。

我尝试研究.includes()是否允许使用逻辑运算符,但没有结果。这是为什么我会出错,还是有其他原因?

这是我的JS:

function docType(fileName) {
    let docImg = "<img src='https://url/Current.ashx/docx.gif'  />"
    let msgImg = "<img src='https://url/Current.ashx/msg.gif'   />"

    let docStr = fileName.split(".");
      for (var i = 0; i < docStr.length; i++) {
       if (docStr[i].includes('doc' || 'DOCX')) { return docStr[i] = docImg;  } 
  else if (docStr[i].includes('msg')) { return docStr[i] = msgImg;  } 

      }
  } // docType

2 个答案:

答案 0 :(得分:1)

除了多个包含项或正则表达式之外,您还可以使用Array#some()

尝试

if(['doc','DOCX'].some(s = > docStr[i].includes(s)))

答案 1 :(得分:1)

includes检查作为参数传递的值。在检查过程中不会评估任何用户代码。您将需要使用

if (docStr[i].includes('doc') || docStr[i].includes('doc'))