JavaScript 代码优化:使用 map 简化附件处理

以下代码展示了如何使用 JavaScript 的 map 方法优化附件处理代码,简化代码逻辑,提高代码可读性。

原始代码:

let evaluateApplyForm = []
this.assessmentForm.attachments.forEach(file => {
  let { extensionName, fileId, name,smallImgUrl } = file
  // 处理heic格式图片
  if (extensionName.toLowerCase().includes('heic')) {
    extensionName = 'jpg'
    if(smallImgUrl){
      fileId = fileId.toLowerCase().replace('.heic', '.jpg')
    }
  }
  let obj = {
    extensionName,
    name: name,
    key: smallImgUrl ? file.key : `ContingencyManage/${fileId}`,
    source: smallImgUrl ? file.source : file.tag2 ? 1 : 0,
    size: file.fileLength || file.size,
    username: this.curUserName,
    uploadTime: dayjs(Date.now()).format('YYYY-MM-DD HH:mm')
  }
  evaluateApplyForm.push(obj)
})

优化后的代码:

const evaluateApplyForm = this.assessmentForm.attachments.map(file => {
  let { extensionName, fileId, name, smallImgUrl } = file;
  // 处理heic格式图片
  if (extensionName.toLowerCase().includes('heic')) {
    extensionName = 'jpg';
    fileId = smallImgUrl ? fileId.toLowerCase().replace('.heic', '.jpg') : `ContingencyManage/${fileId}`;
  }
  return {
    extensionName,
    name: name,
    key: smallImgUrl ? file.key : fileId,
    source: smallImgUrl ? file.source : file.tag2 ? 1 : 0,
    size: file.fileLength || file.size,
    username: this.curUserName,
    uploadTime: dayjs(Date.now()).format('YYYY-MM-DD HH:mm')
  };
});

// 简化了代码,使用了map代替forEach,并且将let声明的变量改为const声明。还将obj改为直接返回对象。

优化说明:

  • 使用 map 方法代替 forEach 方法,可以更简洁地生成新的数组。
  • 使用 const 声明变量,可以提高代码可读性,并防止意外修改变量值。
  • 直接返回对象,简化代码逻辑。

结论:

通过使用 map 方法和 const 声明,可以优化代码逻辑,提高代码可读性,并简化代码结构。

JavaScript 代码优化:使用 map 简化附件处理

原文地址: https://www.cveoy.top/t/topic/lDUp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录