优化这段代码 data.tableData.forEach((item: any) => { if (item.contractFiles != null) { let filesList = item.contractFiles.split(',') item.contractFilesList = [] filesList.forEach((itemFile: any) => { let objFile = { fileUrl: itemFile } item.contractFilesList.push(objFile) }) } if (item.contractFilesList != undefined) { item.contractFilesList.forEach((conFiles: any) => { let fileName = conFiles.fileUrl.indexOf('com/') if (fileName != -1) { conFiles.fileName = conFiles.fileUrl.slice(Number(fileName) + 4) } else { conFiles.fileName = conFiles.fileUrl } }) } })
时间: 2024-02-10 10:06:09 浏览: 68
可以对这段代码进行如下优化:
```
data.tableData.forEach((item: any) => {
if (item.contractFiles) {
item.contractFilesList = item.contractFiles.split(',').map((fileUrl: any) => {
const fileName = fileUrl.includes('com/') ? fileUrl.slice(fileUrl.indexOf('com/') + 4) : fileUrl;
return { fileUrl, fileName };
});
}
});
```
优化的主要思路是:
1. 使用 `Array.prototype.map()` 方法,将 `filesList.forEach()` 循环转换为一条语句,以减少代码量。
2. 使用 `Array.prototype.includes()` 方法,替换 `indexOf()` 方法判断字符串中是否包含子字符串。
3. 在 `map()` 方法中直接返回一个包含 `fileUrl` 和 `fileName` 的对象,以避免在后续的循环中再次处理文件名。
阅读全文