JS常用方法


JS 常用方法

1、数组相关

1.1、数组分组函数

// 数组分组函数
dataGroupingToJson(array, key) {
  if (!key) return array;
  var aMap = [];
  var oResult = {};
  for (var i = 0; i < array.length; i++) {
    var item = array[i];
    if (aMap.indexOf(item[key]) === -1) {
      oResult[item[key]] = [item];
      aMap.push(item[key]);
    } else {
      oResult[item[key]].push(item);
    }
  }
  return oResult;
},

2、请求相关

//简单封装post请求
postRequest(path, queryInfo, header) {
    return new Promise((resolve, reject) => {
        this.$axios
            .post(path, queryInfo, { headers: header })
            .then((res) => {
            resolve(res.data);
        })
            .catch((err) => {
            reject(err);
        });
    });
},
    //调用 this.postRequest(path, queryInfo).then((data) => {...})

    //统一处理请求结果
    commonGetResData(res, noMessage) {
        return new Promise((resolve, reject) => {
            if (res.status === 200) {
                if (res.data.meta) {
                    if (res.data.meta.success) {
                        resolve(res.data.data)
                    } else {
                        this.$message({
                            type: 'error',
                            message: res.data.meta.message
                        })
                        reject(res.data.meta.message)
                    }
                } else {
                    const msg = '后台返回数据格式异常'
                    if (!noMessage) {
                        this.$message({
                            type: 'error',
                            message: msg
                        })
                    }
                    reject(msg)
                }
            } else {
                const msg = res.statusText
                if (!noMessage) {
                    this.$message({
                        type: 'error',
                        message: msg
                    })
                }
                reject(msg)
            }
        })
    },



       //同时发送多个请求
        // 获取附录信息
        getFlxx() {
            let g = this;
            axios.all([getrylb(), getZjlb()]).then(
                axios.spread(function (res1, res2) {
                    let error = res1.error || res2.error;
                    if (error) {
                        g.shortErrMsg("获取数据出错:" + error);
                        return;
                    }
                    console.log(res2, "this.flxx");
                    g.personType = res1.data;
                    g.zjList = res2.data;
                })
            );
        },

3、日期相关

//数字转日期
formatDate(numb, format) {
      if (numb == null || numb == "") {
        return "";
      } else {
        const old = numb - 1;
        const t = Math.round((old - Math.floor(old)) * 24 * 60 * 60);
        const time = new Date(1900, 0, old, 0, 0, t);
        const year = time.getFullYear();
        const month = time.getMonth() + 1;
        const date = time.getDate();
        return (
          year +
          format +
          (month < 10 ? "0" + month : month) +
          format +
          (date < 10 ? "0" + date : date)
        );
      }
    },

文章作者: Liu Yuan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liu Yuan !
—— 评论区 ——
  目录