目录
字典搜索
删除对象空值
计算两个时间的时间差
防抖函数
对象数组去重
对象数组排序
金额加千分位
千分位转数字
获取当前日期(yyyy-mm-dd)
获取当前时间(格式:HH:MM:SS)
数组求和(reduce)
表单重置
字典搜索
根据数字字典码值获取字段的值
// 字典
export const CONFIGDATA =[
{id:'0',name:'张三',type:'down',age:23,scool:'S_OP'},
{id:'2',name:'李四',type:'down',age:23,scool:'S_OP'},
{id:'3',name:'王五',type:'down',age:23,scool:'S_OP'}
];
每个文件对这个查找逻辑都处理一遍,会很冗余。可在文件中声明引用。
// 中
export function codeBy(code,array,name){
// 当索引不是数组字典返回空
if(!){
retuen '';
}
let result;
// 根据字典ID找到该值
let valObj = ((v)=>{===`${code}`});
if(valObj){
// 根据值的名,找对应的名字等
result=valObj[name];
}else{
result = '';
}
return result;
}
引用时,引入文件;例如:codeBy('3',CONFIGDATA,'age');// 23
删除对象空值
对象入参时候,常常表单入参较多,但是有些不是必传可以不传。
let params = {
name:'',
userList:[],
age:null,
type:'WALL'
};
常常用 delete ; delete ;
// 中
export function delObjNull(params = {}, ...restStr){
// 删除指定字段
((m)=>{delete params[m];});
// 删除空数组、空字符串、undifined、null
(params).forEach((k)=>{
if(
params[k]==='' || params[k] === undifined
|| params[k] === null ||
((params[k]) && !params[k].length)
){
delete params[k];
}
});
}
调用:delObjNull(params,'userName','id','prodId');// 删除params空的,删除指定字段--userName、id、prodId
计算两个时间的时间差
data1 data2 两个时间-格式:2022-05-20 返回 iDays(Number)
// 中
export function dataDifference(data1,data2){
let dataSpan;
let iDays;
data1 = (data1);
data2 = (data2);
// 取绝对值
dataSpan = (data2 - data1);
iDays = (dataSpan / (24*3600*1000));
return iDays;
}
防抖函数
// 防抖函数
// fn [function] 需要防抖的函数
// delay [number] 毫秒,防抖期限值
// immediate[boolean] 是否立即执行
export function debounceFn(fn ,delay ,immediate){
let timer = null ;
const t = delay || 500;
funtion debounce(...args){
const self = this;
if(timer){
clearTimeout(timer);
}
if(immediate){
const callNow = !timer;
// 定义t时间后把timer变为nul,即在t时间之后事件才会有效
timer = setTimeout(()=>{timer = null;},t);
// 如果callNow为true,即原本timer为null,那么执行fn
if(callNow){
self[fn](...args);
}
}else{
timer = setTimeout(()=>{ self[fn](...args); },t);
}
}
}
对象数组去重
export function unique(arr,uniqueKey){
const res = new Map();
return ((item)=>(!(item[uniqueKey]) && (item[uniqueKey]));
}
对象数组排序
// 升序
export function sortByKek(arr,uniqueKey){
retuen ((a,b)=>{
let x = a[key];
let y = b[key];
if(x === undefined){
return 1;
}
if(y === undefined){
return -1;
}
let sort = x > y : 1: 0;
return x<y ? -1:sort;
});
}
// 降序
export function downSortByKek(arr,uniqueKey){
retuen ((a,b)=>{
let x = b[key];
let y = a[key];
let sort = (x > y) : 1: 0;
return (x < y) ? -1 : sort;
});
}
金额加千分位
export function formatMoney(val,type = 2){
if( val === '' || val === 0){
return '0.00';
}
val = Number(val);
if(isNaN(val)){
return '';
}
return (type).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
}
千分位转数字
export function delCommaFn(num){
if(!num){
return num;
}
num = ();
num = (/,/gi,'');
return num;
}
获取当前日期(yyyy-mm-dd)
export function getNowTime(num){
let date = new Date();
let years = ();
let month = () + 1 ;
let day = ();
month = (month >=0 && month <=9) ? `0${month}`: month ;
day = (day >=0 && day <=9) ? `0${day}`: day ;
// 获取当前日期 格式(YYYY-MM-DD)
let nowData= `${day }-${month }-${day }`;
return nowData;
}
获取当前时间(格式:HH:MM:SS)
export function getNowTime(num){
let date = new Date();
let hours = ();
let minutes = ();
let seconds = ();
hours = (hours >=0 && hours <=9) ? `0${hours}`: hours;
minutes = (minutes >=0 && minutes <=9) ? `0${minutes }`: minutes ;
seconds = (seconds >=0 && seconds <=9) ? `0${seconds }`: seconds ;
// 获取当前时间 格式(HH:MM:SS)
let time = `${hours}:${hours}:${seconds}`;
return time;
}
数组求和(reduce)
export function sumArray(arr){
// arr 为 ['1',23,56,89,56,44];
return ((sum,val)=> sum + Number(val) , 0 );
}
若为对象数组
export function sumObjArray(arr,key){
// arr 为 [{num:23},{num:25},{num:69},{num:25}];
return ((sum,val)=> sum + Number(val[key]) , 0 );
}
表单重置
export function formReset(obj){
// from:{chanel:"APP",userName:"zhangsan",proType:[]}
// 传值
// const setData = (val,key) => this.$set(obj,`${key}`,val);
// 或者
const setData = (val,key) => obj[k]=val;
(obj).forEach((k)=>{
if((obj[k])){
setData([],`${k]}`); // 若为数组
}else{
setData('',`${k]}`); // 若为其他
}
});
return obj;// 返回空对象
}