我的本地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
答案 0 :(得分:1)
这将过滤docx
和pptx
,然后返回提供的值
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)