执行函数以查看JSON文件是否包含特定的字符串

时间:2019-02-06 22:35:03

标签: javascript jquery json function

我的本​​地JSON文件包含文档(以.docx,.pdf等结尾)。我有一个呈现这些文档的表格,我希望能够将文本“ .docx”(以及其他内容)呈现到单独的列中,每个文本字符串都对应一个文档。最终目标是将文本替换为其各自的图标,即,一个MS Word替代.docx。

到目前为止,我有一个.includes('docx' || 'DOCX' || 'pptx')方法,可以在表的列中正确显示值为true和false:

  

| true || Example.docx |

     

| false || Other.popx |

如何在代码中包含循环(或其他内容)以显示'docx','pptx'等文本,而不是true和false?

正在加载文档标题数据:

loadTableData() {
    $.noConflict();
    let tableRes = KMdocs.d.results.filter(function(val) { 
      return (val.FileLeafRef.trim().length > 0);
    }).map(function(obj) {
      return {
        "Path": obj.EncodedAbsUrl,
        "Titles": obj.File.Name,
        "Categories": obj.ResourceType.results.map(function(val) {
          return val.Label;
        }).join(";"),
        "Blank": "",
        "docImg": obj.File.Name.includes('docx' || 'DOCX' || 'pptx')
        // ----- this is where I'd like to include the code
      }
    })

渲染表数据:

$('#km-table-id').DataTable( {
      columns: [
        // { data: "Blank" },
        { data: "Categories" }, // hidden
        { data: "docImg" },
        { data: "Titles" } // must be in last position to respond w/ checkboxes
      ],
      columnDefs: [
...etc

1 个答案:

答案 0 :(得分:1)

这将过滤docxpptx,然后返回提供的值

function documentType(fileName) {
  return [fileName].filter(function(filter) {
    return filter.toLowerCase().includes('docx') || filter.toLowerCase().includes('pptx')
  }).map(function(filename) {
    //Get File Extension
    return filename.split('.').pop();
  }).pop();
}

用法是:

"docImg": documentType(obj.File.Name)