首页 > 编程语言 > 详细

js 数组去重等别的方法

时间:2021-04-27 20:17:32      阅读:25      评论:0      收藏:0      [点我收藏+]
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});
}

 

js 数组去重等别的方法

原文:https://www.cnblogs.com/seize-today/p/14709330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!