• util


    对象属性复制

    export function objectAssign(dest, source) {
        if (Object.assign) {
            return Object.assign(dest, source);
        }
        for (var key in source) {
            dest[key] = source[key];
        }
        return dest;
    }
    

    获取url参数

    export function getQueryString(name) {
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        let result = location.search.substr(1).match(reg);
        return result ? unescape(result[2]) : "";
    }
    

    字符串去空格

    export function strTrim(str) {
        return str.replace(/(^s*)|(s*$)/g, "");
    }
    

    生成全局唯一的id

    export function uniqueId() {
        let localTime = new Date().getTime();
        return localTime + Math.ceil(Math.random() * 10000);
    }
    

    根据keyName生成数组查找函数

    export function genItemSearchHandler(keyName) {
        return function(items, key) {
            for (var i = 0; i < items.length; ++i) {
                if (items[i][keyName] == key) {
                    return items[i];
                }
            }
            return null;
        };
    }
    

    根据keyName生成数组index查找函数

    export function genIndexSearchHandler(keyName) {
        return function(items, key) {
            for (var i = 0; i < items.length; ++i) {
                if (items[i][keyName] == key) {
                    return i;
                }
            }
            return null;
        };
    }
    

    DOM处理

    export function findParentNodeByCls(target, clsName) {
        while (target != window.document.body) {
            const cls = target.getAttribute("class");
            if (cls && cls.indexOf(clsName) !== -1) {
                return target;
            }
            target = target.parentNode;
        }
    
        return null;
    }
    

    动态加载资源

    export function preLoadResouce(url, onloadCB) {
        var head = document.getElementsByTagName("head")[0];
        var element = document.createElement("script");
        element.type = "text/javascript";
        element.src = url;
        if (typeof onloadCB === "function") {
            element.onload = function() {
                element.onload = null;
                onloadCB();
            };
        }
        head.appendChild(element);
    }
    

    时间格式化

    export function dateFormat(date, format = "YYYY-MM-DD hh:mm") {
        let ret = format.replace("YYYY", padStartZero(date.getFullYear(), 4));
        ret = ret.replace("MM", padStartZero(date.getMonth() + 1, 2));
        ret = ret.replace("DD", padStartZero(date.getDate(), 2));
        ret = ret.replace("hh", padStartZero(date.getHours(), 2));
        ret = ret.replace("mm", padStartZero(date.getMinutes(), 2));
        ret = ret.replace("ss", padStartZero(date.getSeconds(), 2));
    
        return ret;
    }
    

    获取n天的秒数

    export function getDayMilliseconds(n = 1) {
        return n * 24 * 60 * 60 * 1000;
    }
    

    递归查找数据

    export function recursionFind(datas = [], predcate, subPropName) {
        let ret = null;
        datas.some(function(data) {
            if (predcate(data)) {
                ret = data;
                return true;
            }
    
            if (isArray(data[subPropName])) {
                ret = recursionFind(data[subPropName], predcate, subPropName);
    
                return ret != null;
            }
        });
    
        return ret;
    }
    

    在光标处插入文字

    export function insertAtCursor(obj, str) {
        if (document.selection) {
            var sel = document.selection.createRange();
            sel.text = str;
        } else if (typeof obj.selectionStart === "number" && typeof obj.selectionEnd === "number") {
            var startPos = obj.selectionStart,
                endPos = obj.selectionEnd,
                cursorPos = startPos,
                tmpStr = obj.value;
            obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
            cursorPos += str.length;
            obj.selectionStart = obj.selectionEnd = cursorPos;
        } else {
            obj.value += str;
        }
    }
    

    删除Cookie

    export function delCookie(name) {
        let exp = new Date();
        exp.setTime(exp.getTime() - 2 * 60 * 1000);
        let cval = getCookie(name);
        if (cval != null) {
            document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
        }
    }
    

    获取Cookie

    export function getCookie(name) {
        let arr,
            reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
        if ((arr = document.cookie.match(reg))) {
            return unescape(arr[2]);
        } else {
            return null;
        }
    }
    

    数组去重

    export function arrayDeduplicate(arr) {
        return [...new Set(arr)];
    }
    
  • 相关阅读:
    Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
    Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
    Pythonlog() 函数
    Rabbitmq+sockjs+stomp.js前端的使用
    alter table t_user alter column create_date set default CURRENT_TIMESTAMP; 报错(idea生成的sql)
    eldatepicker日期控件日期少一天
    实际开发中String转换为json串作为入参发生"JSON parse error:Cannot deserialize value of type Date......not a valid解决
    Cannot deserialize value of type `java.util.Date` from String
    ProtoBuf试用与JSON的比较
    TCP粘包/拆包问题
  • 原文地址:https://www.cnblogs.com/yhquan/p/12096725.html
Copyright © 2020-2023  润新知