常用快捷方法 -- 工具类
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 }