常用快捷方法 -- 工具类

1、数组排序

const arr = [0,1,2,3,4,5,6]
//对数据进行排序--从大到小--根据某个属性
const data=JSON.parse(JSON.stringify(arr)).sort(this.down(param))
 //数据排序的方法 
down (name) {
  return function (obj1, obj2) {
    let val1 = obj1[name]
    let val2 = obj2[name]
    return val2 - val1
  }
},

2、数组内容判断some(数组中有值与条件相符就返回true)、every(数组中所有值与条件相符返回true)

some:数组中有值与条件相符就返回true,
every:数组中所有值与条件相符返回true

const arr = [0,10,12,13,14,15]
arr.some(item=>item>10)  // true
arr.every(item=>item>10) // false

3、时间差计算

function difference (beginTime, endTime) {
   const dateBegin =new Date(beginTime);
   const dateEnd =new Date(endTime);
   const dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
   //计算出相差天数
   const dayDiff=Math.floor(dateDiff /(24 *3600 *1000))
   const leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
   const hours=Math.floor(leave1/(3600*1000)) //计算出小时数
   //计算相差分钟数
   const leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数   
   const minutes=Math.floor(leave2/(60*1000))//计算相差分钟数 
   //计算相差秒数  
   const leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数   
   const seconds=Math.round(leave3/1000) 
   return ; //可直接返回变量名,vue中变量名会自动转换为属性名 -- {'dayDiff':dayDiff}  }

4、获取当前时间,特定时间前的日期

function getBeforeDate(n) { // n -- 往前翻的天数 
   let n = n;
   let d =new Date();
   let year = d.getFullYear();
   let mon = d.getMonth() +1;
   let day = d.getDate();
   if(day <= n) {
     if(mon >1) {
       mon = mon -1;
     } else {
       year = year -1;
       mon =12;
     }
   }
   d.setDate(d.getDate() - n);
   year = d.getFullYear();
   mon = d.getMonth() +1;
   day = d.getDate();
   s = year +"-" +(mon <10 ?('0' + mon) : mon) +"-" +(day <10 ?('0' + day) : day);
   return s;
}

5、控制显示字数超出部分...代替

function ellipsis(value, num=5){
   const nums = num;// 设置限定字数,默认为5if (!value) return '';
   if (value.length > nums) {
     return value.slice(0, nums) +'...';
   }
     return value
}

6、数据转换(千分位符,小数点)

function getFlot(val) {
   if (val !==undefined) {
     return parseFloat(val).toFixed(0).replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
   } else {
     return ''
   }
}

7、树型数据模糊匹配

this.mapTree(e.target.value, tree)
 mapTree (value, arr) {
      const newarr = []
      arr.forEach(element => {
        if (element.label.indexOf(value) > -1) { // 判断条件
          newarr.push(element)
        } else {
          if (element.children && element.children.length > 0) {
            const redata = this.mapTree(value, element.children)
            if (redata && redata.length > 0) {
              const obj = {
                ...element,
                children: redata
              }
              newarr.push(obj)
            }
          }
        }
      })
      return newarr
    }

 

posted @ 2021-10-27 14:47  携手度余生  阅读(54)  评论(0编辑  收藏  举报