前端常用工具方法(对象深拷贝、前端下载文件)

对象深拷贝

  /**
   * 深拷贝
   * @param {*} obj
   */
  function clone (obj) {
    const objClone = Array.isArray(obj) ? [] : {}
    if (obj && typeof obj === 'object') {
      for (const key in obj) {
        if (obj[key]) {
          if (obj[key] && typeof obj[key] === 'object') {
            objClone[key] = this.clone(obj[key])
          } else {
            objClone[key] = obj[key]
          }
        }
      }
    }
    return objClone
  }

下载文件

/**
   * 下载文件
   * @param {url} 下载文件的 URL
  *  @param {fileName} 设置下载文件的文件名
  */
function downloadFile (url, fileName) {
    const res = await fetch(url)
    const blob = await res.blob()
    const objectUrl = window.URL.createObjectURL(blob)
    const alink = document.createElement('a')
    alink.setAttribute('download', fileName)
    alink.setAttribute('href', objectUrl)
    document.body.appendChild(alink)
    alink.click()
    document.body.removeChild(alink)
  }

你可能感兴趣的:(前端常用工具方法(对象深拷贝、前端下载文件))