常用的js函数方法|对象数组去重|对数组排序|对导出文件命名后缀|得到一个月前、半个月前、一年前的时间点

一、对象数组去重

// 根据id去筛选
function deWeightThree (arr){
    let map = new Map();
    for (let item of arr) {
        if (!map.has(item.id)) {
            map.set(item.id, item);
        }
    }
    return [...map.values()];
    },

在这里插入图片描述

二、对数组排序(比如对时间序列排序)

sortarr(arr) {
      var arrsort = arr.sort(); //对原数组进行排序,纯字符串可以用这个
      var newarr = []; //新建空数组
      newarr.push(arrsort[0]); //将排序后数值的第一项给添加到新数组
      for (var i = 1; i < arrsort.length; i++) {
        //遍历排序后的数组
        if (arrsort[i] != newarr[newarr.length - 1]) {
          newarr.push(arrsort[i]);
        }
        //若当前项与新数组最后一项不同,这添加到新数组
      }
      return newarr; //返回新数组
    },

三、对导出文件命名后缀

createName() {
      let now = new Date();
      let year = now.getFullYear(); //得到年份
      let month = now.getMonth(); //得到月份
      let date = now.getDate(); //得到日期
      let hour = now.getHours(); //得到小时
      let minu = now.getMinutes(); //得到分钟
      month = month + 1;
      if (month < 10) month = "0" + month;
      if (date < 10) date = "0" + date;
      let number = now.getSeconds() % 43; //这将产生一个基于目前时间的0到42的整数。
      let time = year + month + date + hour + minu;
      return time + "0" + number;
    },

四、对时间处理,得到一个月前、半个月前、一年前的时间点

getDate(type = null, number = 0) {
      var nowdate = new Date();
      switch (type) {
        case "day": //取number天前、后的时间
          nowdate.setTime(nowdate.getTime() + 24 * 3600 * 1000 * number);
          var y = nowdate.getFullYear();
          var month = nowdate.getMonth() + 1;
          var m = month < 10 ? "0" + month : month;
          var day = nowdate.getDate();
          var d = day < 10 ? "0" + day : day;
          var retrundate = `${y}-${m}-${d}`;
          break;
        case "week": //取number周前、后的时间
          var weekdate = new Date(nowdate + 7 * 24 * 3600 * 1000 * number);
          var y = weekdate.getFullYear();
          var month = nowdate.getMonth() + 1;
          var m = month < 10 ? "0" + month : month;
          var day = nowdate.getDate();
          var d = day < 10 ? "0" + day : day;
          var retrundate = `${y}-${m}-${d}`;
          break;
        case "month": //取number月前、后的时间
          nowdate.setMonth(nowdate.getMonth() + number);
          var y = nowdate.getFullYear();
          var month = nowdate.getMonth() + 1;
          var m = month < 10 ? "0" + month : month;
          var day = nowdate.getDate();
          var d = day < 10 ? "0" + day : day;
          var retrundate = `${y}-${m}-${d}`;
          break;
        case "year": //取number年前、后的时间
          nowdate.setFullYear(nowdate.getFullYear() + number);
          var y = nowdate.getFullYear();
          var month = nowdate.getMonth() + 1;
          var m = month < 10 ? "0" + month : month;
          var day = nowdate.getDate();
          var d = day < 10 ? "0" + day : day;
          var retrundate = `${y}-${m}-${d}`;
          break;
        default: //取当前时间
          var y = nowdate.getFullYear();
          var month = nowdate.getMonth() + 1;
          var m = month < 10 ? "0" + month : month;
          var day = nowdate.getDate();
          var d = day < 10 ? "0" + day : day;
          var retrundate = `${y}-${m}-${d}`;
      }
      return retrundate;
    },

使用
> getDate('day', -14) // 十四天前的时间
getDate("day", 0)   //今天

五、 得到当前数组的键数组

   function formatColumns(arr) {
        if (arr.length > 0) {
            let columns = [];
            arr.forEach((item) => {
                console.log(Object.getKeys(item));
            });
        }
    }

六、对一维数组去重

// 利用数组中的filter方法
function arraySet(arr){
let newArr = arr.filter(function(value,index,self){
    return self.indexOf(value) === index;
});
return newArr
}

后续继续更新…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值