export const unique1 = (arr) => { var hash = []; for (var i = 0; i < arr.length; i++) { if (hash.indexOf(arr[i]) == -1) { hash.push(arr[i]); } } return hash; }
或者
export const unique1 = (arr) => {
let hash
return hash = [...new Set(arr)]
}
//key value 形式数组转obj export const arrToObj = (arr) => { let trueObj = {} for (let i = 0; i < arr.length; i++) { let objSe = {} objSe[arr[i].key] = arr[i].value trueObj = Object.assign({}, trueObj, objSe) } return trueObj; }
// obj 转 key value 形式的数组
export const objToArr = (obj) => {
let trueArr = []
for (let i in obj) {
trueArr.push({
"key": i,
"value": obj[i]
})
}
return trueArr;
}
或者
//利用for of 直接遍历 Object.entries转换成的二维数组,解构赋值后,x为对象的键,y为值
export const objToArr2 = (obj)=>{
let arr = []
for( const [x,y] of Object.entries(obj)){
arr.push({
‘key‘:x,
‘value‘:y
})
}
}
//日期格式,中国标准时间转年月日 export const formatDateTime = function (date) { let y = date.getFullYear(); let m = date.getMonth() + 1; m = m < 10 ? (‘0‘ + m) : m; let d = date.getDate(); d = d < 10 ? (‘0‘ + d) : d; let h = date.getHours(); let minute = date.getMinutes(); minute = minute < 10 ? (‘0‘ + minute) : minute; let second = date.getSeconds();//秒 second = second < 10 ? (‘0‘ + second) : second return y + ‘-‘ + m + ‘-‘ + d + ‘ ‘ + h + ‘:‘ + minute + ‘:‘ + second; };
//文件下载、前端自定义文件名
export const downFile = (condition,queryUrl,downloadName)=>{
return (axios({
method: "post",
headers: { platformCode: localStorage.getItem("platformCode"),access_token: localStorage.getItem("token"),userId: localStorage.getItem("userId"),‘Content-Type‘:"application/x-www-form-urlencoded"},
url: request.SERVER + queryUrl,
data: qs.stringify(condition),
responseType: "blob"
})
.then(response => {
let data = response.data;
console.log(response,‘data‘)
if (!data) {
return;
}
let url = window.URL.createObjectURL(new Blob([data]));
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", "excel.xlsx");
link.download = downloadName+‘.xlsx‘ // 自定义文件名
document.body.appendChild(link);
link.click();
return false
})
.catch(err => {
console.log(err)
return true
}))
}
//钱数 保留两位小数,不够的补0 export const formatnumber =(value, num)=>{ if(value){ let _value = value.toString(); let _dot = _value.indexOf("."); let _valueLen = _value.length; if (num == 0) { if (_dot != -1) { _value = _value.substring(0, _dot); } } else {//如果没有小数点 if (_dot == -1) { _value = _value + "."; for (let i = 1; i <= num; i++) { _value = _value + "0"; } } else {//有小数点,超出位数自动截取,否则补0 _value = _value.substring(0, _dot + num + 1); for (let i = _valueLen; i <= _dot + num; i++) { _value = _value + "0"; } } } return _value; }else{ return 0 } }
//图片base64转文件流
export const base64ToFile=(base64,filename)=>{
var arr = base64.split(‘,‘);
var mime = arr[0].match(/:(.*?);/)[1];
var bstr = atob(arr[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
//转换成file对象
return new File([u8arr], filename, {type:mime});
//转换成成blob对象
// return new Blob([u8arr],{type:mime});
}
原文:https://www.cnblogs.com/seize-today/p/14709330.html